原型和原型鏈

2021-09-11 18:11:18 字數 1133 閱讀 9349

$(function() 

var d = new dog();

console.log(d.__proto__);

console.log(dog.prototype);

}

可以發現d.__proto__和dog.prototype指向的是同乙個原型物件

乙個物件由乙個函式例項化出來,則該物件和該函式指向的是同乙個原型物件

自定義乙個原型物件

$(function() 

dog.prototype = ,

say:function()

}var d = new dog();

d.init();

d.say();

如何在不呼叫init()的情況下也能夠使用name和age

$(function() 

dog.prototype = ,

say:function()

}var d = new dog();

d.say();

}

報錯: d.say is not a function typeerror: d.say is not a function 原因如下

解決辦法:把init函式的原型物件改為dog函式的原型物件。

$(function() 

dog.prototype = ,

say:function()

}dog.prototype.init.prototype = dog.prototype;

window.player = player;

var d = new dog();;

d.say();

}

原型 和 原型鏈

每乙個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乙個物件的過程 建立乙...