1.谈到new关键字,我一般会联想到它的作用,总体来说可以分为四步。
2.首先是创建一个空对象,然后改变this的指向,指向被创建的对象。然后给构造函数赋值,最后返回一个新的对象!
3.这里呢我就使用apply去改变this的指向,并让参数以数组的形式进行传递!砸门废话不多讲!直接上代码吧。
// 创建并实现属于自己的new关键字
function myNew(fn, ...args) {
let obj = {}
fn.apply(obj, args)
return obj
}
const fn = myNew(function(name, age) {
this.name = name
this.age = age
}, 'jack', 40)
console.log(fn);