new的作用(操作符)
- 生成空对象
- 将构造函数内部的this指向 该空对象
- 返回该空对象
代码:
function MyNew(fn,...args) {
let obj = {} // 创建一个对象
fn.apply(obj,args) // 修改fn函数的指向 指向obj对象且执行
obj.__proto__ = fn.prototype // 修改obj的原型指向函数的原型
return obj
}
// 测试
function Test(){
this.a = 100
this.b = 200
}
// 只能通过这种方式实现
let test = MyNew(Test,"哈哈哈",50,15)
console.log(test);