每天一道手写题
手写new核心代码
function myNew(fn, ...arg) { let obj1 = {} if (fn.prototype) obj1.__proto__ = fn.prototype let res = fn.apply(obj1, arg) if (res && (typeof res == 'function' || typeof res == 'object')) return res return obj1 } 测试 function myNew(fn, ...arg) { let obj1 = {} if (fn.prototype) obj1.__proto__ = fn.prototype let res = fn.apply(obj1, arg) if (res && (typeof res == 'function' || typeof res == 'object')) return res return obj1 } function a(name, age, height) { this.name = name this.age = age this.height = height } a.prototype.sayHi = () => { console.log('my name is Li Hua'); } let p = myNew(a, 'giegie', 18, 180) console.log(p); p.sayHi()