js手动实现new方法
程序员文章站
2022-06-09 17:03:03
...
new
- 新生成了一个对象
- 新对象隐式原型链接到函数原型
- 调用函数绑定this
- 返回新对象
核心代码:
function _new(fun) {
return function() {
let obj = {
__proto__: fun.prototype
}
fun.apply(obj, arguments)
return obj
}
}
测试用例:
function person(name, age) {
this.name = name
this.age = age
}
let obj = _new(person)('LL', 100)
console.log(obj) //{name: 'LL', age: 100}