原型和原型鏈

2022-06-16 07:48:09 字數 1053 閱讀 6241

建構函式:大寫字母開頭;

var a={};

var a=new object();

var a=;

var a=new array();

function

foo(){};

var foo=new function (){}

使用instanceof判斷乙個函式是不是乙個變數的建構函式

f instanceof foo ; f instanceof object    (true);

eg:判斷乙個變數是不是陣列: instanceof array;

for in

var

item

for(item in

f) }

所有的引用型別

都具有物件的特性,即可自由擴充套件屬性,(null除外);

都有乙個_proto_(隱式原型)屬性,屬性值是乙個普通的物件;

_proto_(隱式原型)屬性值指向他的建構函式的prototype(顯式原型)屬性值;(===)

所有的函式

①都有乙個prototype(顯式原型)屬性,屬性值是乙個普通的物件;

②當試圖得到乙個物件的某個屬性時,如果這個物件本身沒有這個屬性,

那麼會去他的  _proto_(即他的建構函式的prototype)中查詢;         

f._proto_==foo.prototype

③ 當試圖得到乙個物件的某個屬性時,如果這個物件本身沒有這個屬性,

且他的  _proto_(即他的建構函式的prototype)也沒有這個屬性 ,

那麼會去他的  _proto_的_proto_中查詢(即他的建構函式的建構函式的prototype)(即f._proto_._proto_);                    

f._proto_. _proto_==foo.prototype._proto_==object.prototype;

注意:object._proto_==null;

原型 和 原型鏈

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

原型和原型鏈

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

原型和原型鏈

建構函式 function foo name age function 其實是 var a new object 的語法糖 var a 其實是 var a new array 的語法糖 function foo 其實是 var foo new function 的語法糖 new乙個物件的過程 建立乙...