【原型和原型鏈】什么是原型和原型鏈【重點?。 ?/h2>

? ? ? ? ? ? ? ? ? ? ?眾所周知,努力是成功的唯一途徑? ? !

。圖源自網(wǎng)絡? ?如有侵權? 聯(lián)系刪除? 。

一、原型

①所有引用類型都有一個__proto__(隱式原型)屬性,屬性值是一個普通的對象

②所有函數(shù)都有一個prototype(原型)屬性,屬性值是一個普通的對象

③所有引用類型的__proto__屬性指向它構造函數(shù)的prototype

var a = [1,2,3];

a.__proto__ === Array.prototype; // true

二、原型鏈

當訪問一個對象的某個屬性時,會先在這個對象本身屬性上查找,

如果沒有找到,則會去它的__proto__隱式原型上查找,即它的構造函數(shù)的prototype,

如果還沒有找到就會再在構造函數(shù)的prototype的__proto__中查找,

這樣一層一層向上查找就會形成一個鏈式結構,我們稱為原型鏈。

舉例,有以下代碼:


function Parent(month){

? ? this.month = month;

}

var child = new Parent('Ann');

console.log(child.month); // Ann

console.log(child.father); // undefined

在child中查找某個屬性時,會執(zhí)行下面步驟:


如圖


訪問鏈路為:


如圖


①一直往上層查找,直到到null還沒有找到,則返回undefined

②Object.prototype.__proto__ === null

③所有從原型或更高級原型中的得到、執(zhí)行的方法,其中的this在執(zhí)行時,指向當前這個觸發(fā)事件執(zhí)行的對象


?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容