大概步骤:
第一步:创建对象
第二步:原型赋值
第三步:Foo函数执行,this指向obj对象,给obj添加属性
第四步:返回obj对象
代码如下:
function fn() {
// 第一步:创建对象
var obj = {};
// 第二步:原型赋值
obj.__proto__ = Foo.prototype;
// 第三步:Foo函数执行,this指向obj对象,给obj添加属性。
let result = Foo.call(obj, '张三', 20)
// 第四步:判断构造函数是否返回对象数据类型,如果返回,则返回那个对象,如果没有返回则返回obj对象
return typeof result === 'object' ? result : obj;
}
let b = fn();
console.log(b);