用原生js實現乙個new方法

2021-09-03 07:47:40 字數 807 閱讀 5924

首先寫乙個父類方法(包含引數name,age):

function person(name,age)

}

new乙個person的例項p1做研究對比:

var p1 = new person("richard", 22);

//此時p1包含name、age屬性,同時p1的__proto__指向person的prototype

p1.name;//richard

p1.age;//22

p1.action;//吃飯飯

自定義乙個new函式:
//通過分析原生的new方法可以看出,在new乙個函式的時候,

// 會返回乙個func同時在這個func裡面會返回乙個物件object,

// 這個物件包含父類func的屬性以及隱藏的__proto__

function new(f) ;

return o; //返回乙個object

}}

通過自定義new方法建立乙個例項物件p2:

var p2 = new(person)("jack",25);

p2.name;//jack

p2.age;//25

此時p2 instanceof person 返回的是true;

person.prototype.gender ="male";

p1.gender//male

p2.gender//male

用原生js實現乙個new?

js 還沒執行的時候,js 環境裡已經有乙個 window 物件了,window 物件有乙個 object 屬性,window.object 是乙個函式物件,window.object 這個函式物件有乙個重要屬性是 prototype,window.object.prototype 裡面有 tost...

用原生js實現乙個bind方法

bind 方法建立乙個新的函式,當被呼叫時,將其this關鍵字設定為提供的值,在呼叫新函式時,在任何提供之前提供乙個給定的引數序列。這段是來自mdn bind的介紹,我們可以理解bind方法返回乙個新的函式,這個函式內部的this指向提供的引數值,來看個例子 const person const g...

自己實現乙個new方法

好久沒有寫點東西了,最近看了下js基礎教程,覺得有些東西還是有必要記錄下來 new關鍵字通常和建構函式一起使用,用於建立物件。function animal name,action let animal1 newanimal tigger run let animal2 newanimal cat ...