摘要:可以通過上述路線圖來觀察。注意到也是一個對象,所以也有屬性,這樣就構(gòu)成了一個原型鏈,最高到達為止。對于函數(shù)而言,它的指向。而這個原型對象本身不等于而是它的屬性等于當(dāng)我們手動改變一個對象的原型時即改變指向,注意。
可以通過上述路線圖來觀察。
函數(shù)和對象,都有一個__proto__屬性,指向它們各自的原型prototype。注意到prototype也是一個對象,所以prototype也有__proto__屬性,這樣就構(gòu)成了一個原型鏈,最高到達Object.prototype.__proto__===null為止。
對于函數(shù)而言,它的__proto__指向Function.prototype。因為Object和Function本身也是函數(shù),所以Function.__proto__、Object.__proto__、Cat.__proto__實際上是完全相同的,它們都指向同一個對象:Function.prototype。
因此,如果我們有:Function.prototype.bark=function(){console.log("Wow!")},那么所有函數(shù)都可以按照原型鏈訪問到該方法:Cat.bark()。注意不能寫成Function.bark=....,否則需要通過:Cat.constructor.bark()來訪問(Cat通過原型鏈在Function的prototype中找到了constructor,而它指向Function,從而可以引用bark)
由Cat這個自定義函數(shù)可知,當(dāng)函數(shù)被編譯創(chuàng)建時它就已經(jīng)有了一個原型對象prototype。而這個原型對象prototype本身不等于Object.prototype,而是它的__proto__屬性等于:Cat.prototype.__proto__===Object.prototype
當(dāng)我們手動改變一個對象的原型時(即改變__proto__指向),注意constructor。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/85240.html
摘要:由于一般所有的原型鏈最終都會指向頂端的,所以它們都是的。好了現(xiàn)在了,成了所有對象原型鏈的。 JavaScript里任何東西都是對象,任何一個對象內(nèi)部都有另一個對象叫__proto__,即原型,它可以包含任何東西讓對象繼承。當(dāng)然__proto__本身也是一個對象,它自己也有自己的__proto__,這樣一級一級向上,就構(gòu)成了一個__proto__鏈,即原型鏈。當(dāng)然原型鏈不會無限向上,它有...
摘要:了解中原型以及原型鏈只需要記住以下點即可對象都有屬性,指向構(gòu)造函數(shù)的構(gòu)造函數(shù)函數(shù)都有屬性,指向構(gòu)造函數(shù)的原型對象的內(nèi)置構(gòu)造函數(shù)可知所有的構(gòu)造函數(shù)都繼承于甚至包括根構(gòu)造器及自身。 了解JavaScript中原型以及原型鏈只需要記住以下2點即可 對象都有__proto__屬性,指向構(gòu)造函數(shù)的prototype 構(gòu)造函數(shù)函數(shù)都有prototype屬性,指向構(gòu)造函數(shù)的原型 1、對象的__p...
摘要:如下所示在規(guī)范中,已經(jīng)正式把屬性添加到規(guī)范中也可以通過設(shè)置和獲取對象的原型對象對象之間的關(guān)系可以用下圖來表示但規(guī)范主要介紹了如何利用構(gòu)造函數(shù)去構(gòu)建原型關(guān)系。 前言 在軟件工程中,代碼重用的模式極為重要,因為他們可以顯著地減少軟件開發(fā)的成本。在那些主流的基于類的語言(比如Java,C++)中都是通過繼承(extend)來實現(xiàn)代碼復(fù)用,同時類繼承引入了一套類型規(guī)范。而JavaScript是...
摘要:構(gòu)造函數(shù)和實例都通過屬性指向了原形。代碼示例是構(gòu)造函數(shù)的實例的屬性與的屬性保存的值相等,即他們指向同一個對象原形。 講清楚之javascript原型 標(biāo)簽: javascript javascript 中原形是一個比較難于理解的概念。javascript 權(quán)威指南在原形這一章也花了大量的篇幅進行介紹,也許你已經(jīng)讀過javascript 權(quán)威指南,或者已經(jīng)是讀第N篇了,然而這篇文章的目...
摘要:我們用一張圖表示構(gòu)造函數(shù)和實例原型之間的關(guān)系好了構(gòu)造函數(shù)和實例原型之間的關(guān)系我們已經(jīng)梳理清楚了,那我們怎么表示實例與實例原型,也就是或者和之間的關(guān)系呢。 開篇: 在Brendan Eich大神為JavaScript設(shè)計面向?qū)ο笙到y(tǒng)的時候,借鑒了Self 和Smalltalk這兩門基于原型的語言,之所以選擇基于原型的面向?qū)ο笙到y(tǒng),并不是因為時間匆忙,它設(shè)計起來相對簡單,而是因為從一開始B...
閱讀 3455·2023-04-26 02:31
閱讀 3621·2021-11-23 09:51
閱讀 1286·2021-11-17 09:33
閱讀 2435·2021-11-16 11:45
閱讀 2566·2021-10-11 11:12
閱讀 2406·2021-09-22 15:22
閱讀 2712·2021-09-04 16:40
閱讀 2568·2021-07-30 15:30