手写new方法
创建一个新对象,通过apply或call等方法将this绑定到新对象上。
1. 源码
function _new(ctx, ...arg) {
let obj = {}
obj.__proto__ = ctx.prototype
ctx.apply(obj, arg)
return obj
}
2. 测试
function Bar(_name, _age) {
this.name = _name
this.age = _age;
}
let b = _new(Bar, 'name', 20)
console.log(b)
网友评论