new 都做了什么? 1、创建一个新的实例对象 2、将this指向新的实例对象 3、新对象的__proto__属性指向构造函数的原型对象 4、返回值 第一种实现:
function _new(Func, ...args){
let obj = {}
obj.__proto__ = Func.prototype
let result = Func.call(obj, ...args)
return (result!== null && /^(object)|(function)$/.test(typeof result)) ? result : obj
}
第二种实现:
function _new(Func, ...args){
let obj = Object.create(Func.prototype)
let result = Func.call(obj, ...args)
return (result!== null && /^(object)|(function)$/.test(typeof result)) ? result : obj
}
new 都做了什么?
1、创建一个新的实例对象
2、将this指向新的实例对象
3、新对象的__proto__属性指向构造函数的原型对象
4、返回值
第一种实现:
第二种实现:
第 14 题:情人节福利题,如何实现一个 new