国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

淺談JavaScript原型與原型鏈

Yang_River / 849人閱讀

摘要:在講原型之前,先簡單介紹一下幾個(gè)概念構(gòu)造函數(shù)例如上述代碼創(chuàng)建的函數(shù)就被稱為構(gòu)造函數(shù)。同一個(gè)構(gòu)造函數(shù)實(shí)例化得到的多個(gè)對(duì)象具有相同的原型對(duì)象,所以經(jīng)常使用原型對(duì)象來實(shí)現(xiàn)繼承。實(shí)例對(duì)象通過操作構(gòu)造函數(shù)所創(chuàng)建的對(duì)象是實(shí)例對(duì)象。

對(duì)于很多前端開發(fā)者而言,JavaScript的原型實(shí)在是很讓人頭疼,所以我這邊就整理了一下自己對(duì)應(yīng)原型的一點(diǎn)理解,分享給大家,供交流使用

原型

說起原型,那就不得不說prototype、__proto__、constructor三者的關(guān)系,其中比較麻煩的就是容易將prototype和__proto__混淆,這也是因?yàn)樗鼈冎g的指向確實(shí)有些復(fù)雜

function Heternally(){};
var f1 = new Heternally;

通過上述兩行代碼先創(chuàng)建一個(gè)函數(shù)對(duì)象,然后使用new實(shí)例化對(duì)象。

在講原型之前,先簡單介紹一下幾個(gè)概念:

構(gòu)造函數(shù)

例如上述代碼創(chuàng)建的Heternally()函數(shù)就被稱為構(gòu)造函數(shù)。是用來初始化新創(chuàng)建的對(duì)象的函數(shù)。

構(gòu)造函數(shù)有一個(gè)prototype屬性,它指向?qū)嵗龑?duì)象的原型對(duì)象。同一個(gè)構(gòu)造函數(shù)實(shí)例化得到的多個(gè)對(duì)象具有相同的原型對(duì)象,所以經(jīng)常使用原型對(duì)象來實(shí)現(xiàn)繼承。

實(shí)例對(duì)象

通過new操作構(gòu)造函數(shù)所創(chuàng)建的對(duì)象是實(shí)例對(duì)象。一個(gè)構(gòu)造函數(shù)可以實(shí)例化多個(gè)實(shí)例對(duì)象,但是得到的各個(gè)實(shí)例對(duì)象并不相等。

實(shí)例對(duì)象有個(gè)proto屬性,指向該實(shí)例對(duì)象對(duì)應(yīng)的原型對(duì)象。

又因?yàn)閷?shí)例對(duì)象可以繼承原型對(duì)象的屬性,所以實(shí)例對(duì)象也擁有constructor屬性,指向原型對(duì)象對(duì)應(yīng)的構(gòu)造函數(shù)

原型對(duì)象

原型對(duì)象有一個(gè)constructor屬性,指向該原型對(duì)象對(duì)應(yīng)的構(gòu)造函數(shù)

w3c上對(duì)于 prototype 屬性的定義是它使您有能力向?qū)ο筇砑訉傩院头椒?/p>

prototype和__proto__的區(qū)別

1. prototype是函數(shù)才有的屬性

2. __proto__是每個(gè)對(duì)象都有的屬性

3. __ptoto__實(shí)際上是某個(gè)實(shí)體對(duì)象的屬性,而prototype則是屬于構(gòu)造函數(shù)的屬性。__ptoto__只能在學(xué)習(xí)或調(diào)試的環(huán)境下使用。

__proto__屬性指向誰

它的指向取決于對(duì)象創(chuàng)建時(shí)的實(shí)現(xiàn)方式,這里就介紹兩種常用方式創(chuàng)建對(duì)象后,它指向誰

字面量方式

構(gòu)造器方式

原型鏈

由于__proto__是任何對(duì)象都有的屬性,而js中萬物皆對(duì)象,所以會(huì)形成一條__proto__連起來的鏈條,遞歸訪問__proto__必須最終到頭,并且值是null。

當(dāng)js引擎查找對(duì)象的屬性時(shí),先查找對(duì)象本身是否存在該屬性,如果不存在,會(huì)在原型鏈中查找,但不會(huì)查找自身的prototype

圖片取自原型鏈

總結(jié)

所有的對(duì)象都有__proto__屬性,該屬性對(duì)應(yīng)該對(duì)象的原型.

所有的函數(shù)對(duì)象都有prototype屬性,該屬性的值會(huì)被賦值給該函數(shù)創(chuàng)建的對(duì)象的_proto_屬性.

所有的原型對(duì)象都有constructor屬性,該屬性對(duì)應(yīng)創(chuàng)建所有指向該原型的實(shí)例的構(gòu)造函數(shù).

函數(shù)對(duì)象和原型對(duì)象通過prototype和constructor屬性進(jìn)行相互關(guān)聯(lián).

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/51188.html

相關(guān)文章

  • 淺談JavaScript原型原型

    摘要:在講原型之前,先簡單介紹一下幾個(gè)概念構(gòu)造函數(shù)例如上述代碼創(chuàng)建的函數(shù)就被稱為構(gòu)造函數(shù)。同一個(gè)構(gòu)造函數(shù)實(shí)例化得到的多個(gè)對(duì)象具有相同的原型對(duì)象,所以經(jīng)常使用原型對(duì)象來實(shí)現(xiàn)繼承。實(shí)例對(duì)象通過操作構(gòu)造函數(shù)所創(chuàng)建的對(duì)象是實(shí)例對(duì)象。 對(duì)于很多前端開發(fā)者而言,JavaScript的原型實(shí)在是很讓人頭疼,所以我這邊就整理了一下自己對(duì)應(yīng)原型的一點(diǎn)理解,分享給大家,供交流使用 原型 說起原型,那就不得不說p...

    Zoom 評(píng)論0 收藏0
  • 淺談JavaScript原型

    摘要:在這其中我們就逃不開要討論繼承原型對(duì)象構(gòu)造函數(shù)實(shí)例了。想要獲得某一類型的構(gòu)造函數(shù)可以用來獲得,也可以對(duì)該屬性進(jìn)行賦值操作。三上面就提到一點(diǎn)是指構(gòu)造函數(shù)的原型對(duì)象,它是一個(gè)對(duì)象,它是構(gòu)造函數(shù)的屬性。 原型鏈這一個(gè)話題,需要和很多概念一起講,才能串成一個(gè)比較系統(tǒng)的知識(shí)點(diǎn)。在這其中我們就逃不開要討論繼承、原型對(duì)象、構(gòu)造函數(shù)、實(shí)例了。 一、構(gòu)造函數(shù) 構(gòu)造函數(shù)是一類特殊的函數(shù),它的作用是用來生成...

    xumenger 評(píng)論0 收藏0
  • 淺談javascript原型原型

    摘要:在中,主要有兩種創(chuàng)建對(duì)象的方法分別是對(duì)象字面量以及調(diào)用構(gòu)造函數(shù)對(duì)象字面量調(diào)用構(gòu)造函數(shù)其實(shí)上述兩種創(chuàng)建對(duì)象的方法,本質(zhì)上是一樣的,都是引擎調(diào)用對(duì)象的構(gòu)造函數(shù)來新建出一個(gè)對(duì)象。 原型與原型鏈?zhǔn)莏avascript里面最最核心的內(nèi)容,如果不能理解它們之間的存在關(guān)系的話,那么我們是不能理解這門語言的。 在JS中,主要有兩種創(chuàng)建對(duì)象的方法, 分別是對(duì)象字面量以及調(diào)用構(gòu)造函數(shù) //對(duì)象字面量 va...

    includecmath 評(píng)論0 收藏0
  • 淺談 JavaScript 原型

    摘要:數(shù)組的構(gòu)造函數(shù)是原型鏈的指向與其他除以外的構(gòu)造函數(shù)相同,的也指向頂級(jí)原型對(duì)象,每一個(gè)數(shù)組都是的實(shí)例,都指向。實(shí)例對(duì)象查找構(gòu)造函數(shù)原型對(duì)象的方法一般會(huì)把對(duì)象共有的屬性和方法都放在構(gòu)造函數(shù)的原型對(duì)象上。 showImg(https://segmentfault.com/img/remote/1460000018998704?w=900&h=506); 閱讀原文 概述 在 JavaScr...

    explorer_ddf 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<