function myNew(fn, ...argu) {
const obj = {}
obj.__proto__ = fn.prototype
let result = fn.call(obj, ...argu)
if(typeof result == 'object' || typeof result == 'function') {
return result
}
return obj
}
function Person(name, age) {
this.name = name;
this.age = age;
}
Person.prototype.say = function() {
console.log(this.age);
};
let p1 = myNew(Person, "lihua", 18);
console.log(p1.name);
console.log(p1);
p1.say();
let obj = {
a: 1
}
function fn(name, age) {
console.log(this.a)
console.log(name)
console.log(age)
}
fn.call(obj, '周斌', 19)