多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### 1.new 的使用 ```js function Person(name, age) { this.name = name this.age = age } const p = new Person('xu', 26) ``` ### 2.new的作用 根据构造函数创建了一个对象 ### 3.模拟new 需要形成如下功能,传入构造函数,传入参数,生成以该构造函数生成的实例 ```js _new(Person, 'xu', 26) ``` 思路: 1.先根据传入的构造函数的原型,创建一个空对象obj,目的为了将空对象的原型链指向构造函数的原型 2.执行构造函数的constructor,将方法this指向空对象obj,目的是为了将传入的参数变为obj的内部属性 3.return 出新对象 ```js function myNew(func, ...args) { if (typeof func !== 'function') { throw('func must be a function') } // 根据原型生成新空对象 let obj = Object.create(func.prototype) let res = func.call(obj, ...args) return res || obj } console.log(myNew(Person, 111, 222)) ```