91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

什么是js的prototype

發布時間:2020-07-13 10:13:13 來源:億速云 閱讀:118 作者:Leah 欄目:web開發

這篇文章將為大家詳細講解有關什么是js的prototype,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

Javascript也是面向對象的語言,但它是一種基于原型Prototype的語言,而不是基于類的語言。

在javaScript創建對象一文中提到過:用構造函數創建對象存在一個問題即同一構造函數的不同實例的相同方法是不一樣的,所以我們用原型把構造函數中公共的屬性和方法提取出來進行封裝,達到讓所有實例共享的目的。

function定義的對象有一個prototype屬性,prototype屬性又指向了一個prototype對象。在prototype對象中有一個constructor屬性,這個constructor屬性同樣指向一個constructor對象,而這個constructor對象恰恰就是這個function函數本身。

用偽代碼表示如下:

var function{
    prototype:prototype{
        constructor:constructor == function
    }
}

函數與原型的關系

js中創建一個函數,就會自動創建一個prototype屬性,這個屬性指向函數的原型對象,并且原型對象會自動獲得一個constructor(構造函數)屬性,指向該函數。

舉例:以前面的原型模式創建對象為例說明

<script type="text/javascript">
function Person(){

}
Person.prototype.name="lxy";
Person.prototype.age=22;
Person.prototype.job="Software Engineer";
Person.prototype.sayName=function(){
    alert(this.name);
}
     
     var lxy=new Person();
     lxy.sayName();
     var personA=new Person();
     personA.sayName();
     alert(lxy.sayName()==personA.sayName());//true
</script>

實例與原型的關系

通過構造函數創建一個實例,該實例內部將包含一個屬性(指針),指向構造函數的原型對象。

舉例:Person構造函數的實例Person1和Person2的[[Prototype]]屬性都指向Person的原型。

Note:[[Prototype]]連接是存在于實例和構造函數的原型之間,而不是存在實例與構造函數之間。

關于這個指針,ECMA-262中叫[[Prototype]],沒有標準的方式訪問[[Prototype]],但Firefox、Safari和Chrome在每個對象上都支持一個屬性__protp__,而在其他實現中,這個屬性對腳本不可見。

關于什么是js的prototype就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

枝江市| 通化县| 论坛| 两当县| 大同市| 长武县| 登封市| 鄯善县| 常德市| 景谷| 繁昌县| 高台县| 连城县| 手游| 盘锦市| 威海市| 广南县| 陇川县| 松原市| 万全县| 柳河县| 南京市| 讷河市| 道真| 吴忠市| 武功县| 加查县| 博白县| 钟祥市| 鸡东县| 温宿县| 海阳市| 根河市| 九龙坡区| 葫芦岛市| 东丽区| 团风县| 巍山| 灌南县| 堆龙德庆县| 贵德县|