-
创建空对象;
var obj = {};
-
设置新对象的constructor属性为构造函数的名称,设置新对象的proto 属性指向构造函数的prototype对象;
obj.proto = ClassA.prototype;
扩展了新对象的原型链。
-
使用新对象调用函数,函数中的this被指向新实例对象:
ClassA.call(obj); //{}.构造函数();
-
返回this指针。当存在显示的返回时,返回return后面的内容。新建的空对象作废。
javascript
//创建了一个空对象obj;
var obj = {};
//将这个空对象的__proto__成员指向了F函数对象prototype成员对象
obj.__proto__ = F.prototype;
//将F函数对象的this指针替换成obj,然后再调用F函数
F.call(obj);
javascript
function test() {
this.name = 'test';
}
test.prototype = {
a: {},
b: {}
};
var c = new test();