1. 创建一个新对象
2. 将这个新对象的隐式原型指向Class的显式原型
3. 将这个新对象作为this指针的指向,用call/apply调用Constructor
4. 如果上述Constructor调用返回对象或function就将其指向 赋值号(=) 左侧变量,否则将这个新对象指向左侧变量
// Demo
const man = new Person();
等同于:
const obj = {};
Reflect.setPrototypeOf(obj, Person.prototype)(浏览器内可使用obj.__proto__ = Person.prototype)
const res = Person.apply(obj, arguments);
if(typeof(res) === "object" || typeof(res) === "function"){
return res;
} else {
return obj;
}
欢迎关注、点赞