new 原理大致分為一下四個(gè)步驟:
- 創(chuàng)建一個(gè)對(duì)象;(var obj = {})
- 將構(gòu)造函數(shù)的this指向該對(duì)象;
- 執(zhí)行構(gòu)造函數(shù)的方法,使該對(duì)象繼承構(gòu)造函數(shù)的方法和屬性;
- 返回該對(duì)象。
function Person(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
Person.prototype.eating = function() {
console.log('I`m eating')
}
var hcx = new Person('Hcx', 18, 'man');
實(shí)現(xiàn)一個(gè)new
function _new(fn, ...arg) {
var obj = {};
fn.apply(obj, arg);
obj._proto_ = fn.prototype;
return obj;
}