new命令的原理

2021-09-13 07:44:09 字數 1068 閱讀 4809

function person(name, age) 

var person = new person('小明', 18);

console.log(person.name); //小明

console.log(person.age); //18

建立乙個空物件,這個物件將會是new person()返回的物件例項;

將這個空物件的原型指向建構函式prototype屬性;

建構函式this指向空物件,並執行建構函式;

判斷建構函式返回的是不是物件,是的話返回預設物件,不是的話返回之前建立的空物件,沒有返回值預設返回空物件

function person(name, age)  */

}function _new(person, ...rest); // 建立乙個空物件,這個物件將會是返回的物件例項

obj.__prototype__ = person.prototype; // 將這個空物件的原型指向person的prototype屬性;

//上述兩步可以合為一步 : var obj = object.create(person.prototype)

return (typeof res === 'object' && res != null) ? res: obj;

// 判斷res返回的是不是物件,是的話返res,不是的話返回之前建立的obj,沒有返回值預設返回obj

}var xiaoming = _new(person, '小明', 15)

console.log(xiaoming .name); //小明

console.log(xiaoming .age); //15

本篇如能對您有所幫助,實在是感到榮幸。如有不合理之處也請大家多多指點。

new的操作原理

簡單記錄下new乙個js物件時,做了什麼事情。1 建立乙個空物件 2 將1中建立的空物件的 proto 屬性指向建構函式的prototype屬性。3 將建構函式的this指定為1中建立的空物件。4 執行建構函式 為this繫結屬性 複製等操作 5.1 如果建構函式有返回值,且返回型別為引用型別,則將...

new的實現原理

new的特點 new乙個建構函式,會自動return乙個例項物件 new完成的例項化物件,proto 自動指向建構函式的prototype new建構函式傳參自動賦值給當前例項化物件 防抖 在固定的時間內沒有觸發事件,會在固定時間結束後觸發,如果固定時間內觸發事件了,會在延長固定時間內觸發 節流 無...

new原理分析

首先先來段我們熟悉的 function person name,age person.prototype.say function let girl new person weboof 18 console.log girl.name console.log girl.age girl.say 這是...