原型和原型鏈 及 instanceof函式

2021-09-12 18:52:57 字數 615 閱讀 6127

function a(){};

var a = new a();

// a ===> a.__proto__(a.prototype) ===> a.prototype.__proto__(object.prototype) ===> object.prototype.__proto__ ===> null

定義:instanceof運算時會遞迴查詢l的原型鏈,即l.__proto__.__proto__.__proto__.__proto__...直到找到了或者找到頂層為止。一句話理解instanceof的運算規則為:instanceof檢測左側的__proto__原型鏈上,是否存在右側的prototype原型。

有乙個有趣的現象:

function instanceof object; // true

object instanceof function; // true

為何object instanceof function為true?

原型及原型鏈

原型定義 原型是function物件的乙個屬性,它定義了建構函式製造出的物件的公共祖先。通過建構函式產生的物件,可以繼承該原型的屬性和方法。原型是物件屬性prototype對應的值。注 原型是乙個物件。我們可以直接在建構函式的prototype上直接新增屬性,也可以將建構函式的prototype指向...

原型 和 原型鏈

每乙個js物件 null除外 都和另乙個物件相關聯。另乙個 物件就是我們熟知的原型,每乙個物件都從原型繼承屬性。所有通過物件直接量建立的物件都具有同乙個原型物件,並可以通過js object.prototype 獲得對原型物件的引用。通過關鍵字new和構造函式呼叫建立的物件的原型就是建構函式的 pr...

原型和原型鏈

原型鏈 例項物件與原型之間的連線,叫做原型鏈 function human human.prototype.age 22 var a new human console.log a.age 這裡的age掛載到了human的原型上面了。其實原型就是乙個物件。a為什麼能找到原型上面的物件呢?這裡例項物件...