原型和原型鏈

2021-08-19 01:20:10 字數 1073 閱讀 9345

建構函式

function foo(name ,age)

$(function() 其實是 var a = new object()的語法糖

//var a = 其實是 var a = new array()的語法糖

//function foo(){} 其實是 var foo = new function()的語法糖

});

new乙個物件的過程

建立乙個新物件

this指向這個新物件

執行**,即對this賦值

返回this

原型規則

引用型別(物件,陣列,函式)可以自動擴充套件屬性;

引用型別(物件,陣列,函式)都有乙個隱式原型屬性(proto);

函式擁有乙個顯示原型屬性(prototype,屬性值也是乙個普通物件

引用型別變數的隱式原型 === 它的建構函式的顯示原型

當檢視得到乙個物件的屬性,如果這個物件本身沒有這個屬性,那麼回去它的建構函式(隱式原型)中尋找。

編寫乙個原型鏈的demo

function

elem

(id)

elem.prototype.html = function

(val)else

}elem.prototype.on = function

(type,fn)

$(function

());

});

補充:

判斷引用型別變數屬於哪個建構函式的方法instanceof

原型 和 原型鏈

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

原型和原型鏈

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

原型和原型鏈

如果obj 是 例項物件 obj.proto obj.prototype obj.proto obj的建構函式下的.prototype 建構函式才有 prototype屬性 這是建構函式的原型 通過this設定的屬性和方法屬於例項化後物件的屬性和方法。建構函式原型下的方法和屬性 f.prototyp...