对象构造函数的原型图
對(duì)象的定義其實(shí)很廣泛,萬物皆為對(duì)象,我們創(chuàng)建對(duì)象一般都是用構(gòu)造函數(shù)來創(chuàng)建的,這里我們來說說構(gòu)造函數(shù)創(chuàng)建對(duì)象的原型圖把.
這個(gè)問題有點(diǎn)抽象,舉個(gè)例子來說,方便一點(diǎn):
這是我們構(gòu)造函數(shù),這里我們要結(jié)合一張 圖來說明就更清楚了,這里我們就用一個(gè)實(shí)例p1好了,其他兩個(gè)就不用了.
這是構(gòu)造函數(shù)和實(shí)例的初始關(guān)系,person就是這個(gè)構(gòu)造函數(shù),它里面其實(shí)有個(gè)屬性叫prototype,prototype屬性的值也是個(gè)對(duì)象,而這個(gè)對(duì)象其實(shí)就是稱作構(gòu)造函數(shù)的原型對(duì)象.到這里那上面那張圖里應(yīng)該要多謝東西了:
這個(gè)原型對(duì)象是有prototype而產(chǎn)生的,那這個(gè)原型函數(shù)里也有個(gè)特殊的屬性叫做constructor,它的值其實(shí)就是構(gòu)造函數(shù)本身person,原型對(duì)象我們也是可以給他加屬性的,例如:
這樣上面原型圖有變了:
?
然而構(gòu)造函數(shù)的實(shí)例和原型對(duì)象有關(guān)系嗎?其實(shí)也是有關(guān)系的.原型對(duì)象中的屬性是可以被實(shí)例共享的,那為什么可以共享呢?因?yàn)閷?shí)例中其實(shí)有一個(gè)屬性叫__proto__.它的值也是原型對(duì)象.
Person.prototype===p1.__proto__? 是完全相等的.
因?yàn)榭梢怨蚕?所以這里其實(shí)p1.constructor得到就是person構(gòu)造函數(shù)本身,
這里要注意一點(diǎn),當(dāng)你要獲取一個(gè)對(duì)象的屬性時(shí),第一步會(huì)先從自身來找,如果自己的屬性中沒有,才會(huì)從原型對(duì)象中接著查找,一直一層一層查找下去.
?
轉(zhuǎn)載于:https://www.cnblogs.com/cykblogs/p/5894520.html
總結(jié)
以上是生活随笔為你收集整理的对象构造函数的原型图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1-4-14:计算邮资
- 下一篇: 写一些脚本的心得总结系列第3篇-----