实现 new 操作符
function Persion(name, age) {
this.name = name;
this.age = age;
}
Persion.prototype.getInfo = function() {
console.log(this.name + this.age);
};
function New(func) {
let res = {};
if (func.prototype) {
res.__proto__ = func.prototype;
}
let ret = func.apply(res, Array.prototype.slice.call(arguments, 1));
if ((typeof ret === "object" || typeof ret === "function") && ret !== null) {
return ret;
}
return res;
}
let XiaoMing = New(Persion, "kk", 12);
XiaoMing.getInfo();
XiaoMing.name = "ll";
XiaoMing.getInfo();