成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

關(guān)于JS的原型鏈的理解。

vvpvvp / 2174人閱讀

摘要:的原型鏈,需要深刻的研究才能搞懂。對(duì)象都是通過(guò)函數(shù)即構(gòu)造函數(shù)創(chuàng)建的。即這里的成為隱式原型。而構(gòu)造函數(shù)的屬性指向自身。這個(gè)對(duì)象的構(gòu)造函數(shù)的是一個(gè)對(duì)象。走到原型鏈的終結(jié)。

- JS是一個(gè)非常有魅力的語(yǔ)言也是一個(gè)比較煩人的語(yǔ)言,主要就是因?yàn)樗奶厥庑造`活性。

JS的原型鏈,需要深刻的研究才能搞懂。不要糾結(jié)細(xì)節(jié)吧。實(shí)在不行就按這個(gè)死背住,慢慢就理解了??傊删褪且痪湓?strong>萬(wàn)物皆對(duì)象。

結(jié)合這個(gè)圖示仔細(xì)理解吧。在你搞懂后你會(huì)發(fā)現(xiàn)。很嗨很刺激!

下面是必須記住的點(diǎn)。基礎(chǔ)知識(shí)不用說(shuō)了吧。

對(duì)象都是通過(guò)函數(shù)(即構(gòu)造函數(shù))創(chuàng)建的。
函數(shù)也是一個(gè)對(duì)象,即屬性的集合,所以也可以對(duì)函數(shù)進(jìn)行自定義屬性。

每個(gè)函數(shù)默認(rèn)的有一個(gè)prototype屬性。
這個(gè)prototype的屬性值是一個(gè)對(duì)象,默認(rèn)的只有一個(gè)construct屬性指向函數(shù)本身。

每個(gè)對(duì)象都有一個(gè)隱藏的屬性——“__proto__”,這個(gè)屬性引用了創(chuàng)建這個(gè)對(duì)象的函數(shù)的prototype。即:fn.__proto__ === Fn.prototype
這里的"__proto__"成為“隱式原型”。

對(duì)象的construct屬性指向構(gòu)造函數(shù)。而構(gòu)造函數(shù)的construct屬性指向自身。

回答什么是JS的原型鏈?

訪問(wèn)一個(gè)對(duì)象的屬性時(shí),先在基本屬性中查找,如果沒(méi)有,再沿著__proto__這條鏈向上找,這就是原型鏈。這個(gè)對(duì)象的__proto__等于這個(gè)對(duì)象構(gòu)造方法的prototype。這個(gè)對(duì)象的構(gòu)造函數(shù)的prototype是一個(gè)對(duì)象。 這個(gè)對(duì)象是被Object()創(chuàng)建出來(lái)的。(Object()是JS內(nèi)部定義好的。) 所以它的__proto__就等于Object.prototype。Object.prototype等于null。到此就是原型鏈的終結(jié)。

然后呢還有一個(gè)點(diǎn)。

函數(shù)可以是一個(gè)普通函數(shù)也可以作為構(gòu)造函數(shù)去創(chuàng)建對(duì)象。 當(dāng)這個(gè)時(shí)候構(gòu)造函數(shù)就和Object()函數(shù)是一個(gè)作用:作為構(gòu)造函數(shù)去生成對(duì)象。
普通構(gòu)造函數(shù)和Object一樣的 他既是函數(shù)也是對(duì)象。他的__proto__指向于Function.prototype。這也是JS內(nèi)部定義好的。Function.__proto__指向Function.prototype有點(diǎn)雞生蛋蛋生雞的意思(Function是被自己創(chuàng)建的)。這里是一個(gè)循環(huán)引用。 Function.prototype也是一個(gè)對(duì)象,他的__proto__指向于Object.prototype。Object.prototype等于null。走到原型鏈的終結(jié)。

以上就是我對(duì)JS原型鏈的理解,有什么錯(cuò)誤的地方希望大家指出。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/109312.html

相關(guān)文章

  • javascript-從toString方法在判斷復(fù)雜數(shù)據(jù)類型上妙用,引申到對(duì)原型理解

    摘要:所以,當(dāng)我們使用時(shí),不能進(jìn)行復(fù)雜數(shù)據(jù)類型的判斷,因?yàn)樗{(diào)用的是,雖然也繼承自,但在上重寫了,而我們通過(guò)實(shí)際上是通過(guò)原型鏈調(diào)用了。 關(guān)于 toString 方法在有關(guān)js的開(kāi)發(fā)中使用應(yīng)該是相當(dāng)廣泛的,這兩天在看jQuery的源碼,從 toString 本身了解與鞏固了不少知識(shí),寫出來(lái)與大家一同分享。首先先上一段代碼: var arr=[1,2,3]; toString.call(arr)...

    sean 評(píng)論0 收藏0
  • 從一道題解讀JS原型

    摘要:明確重要的一點(diǎn),這個(gè)連接存在于實(shí)例與構(gòu)造函數(shù)的原型對(duì)象之間,而不是存在于實(shí)例與構(gòu)造函數(shù)之間。相當(dāng)于重新創(chuàng)建了,指向構(gòu)造函數(shù)這一部分相當(dāng)于是重新在原型對(duì)象中創(chuàng)建了一個(gè)屬性,同時(shí)指向構(gòu)造函數(shù)。 之前對(duì)js原型和原型鏈的理解一直覺(jué)得很繞,繞來(lái)繞去的,在看了《JavaScript高級(jí)程序設(shè)計(jì)》和各種文章之后,終于對(duì)原型和原型鏈有了初步的了解,可是還是沒(méi)有很深入的了解,今次通過(guò)以前段時(shí)間遇到的一...

    harryhappy 評(píng)論0 收藏0
  • 詳解js繼承(二)

    摘要:寄生組合式繼承終于寫到最后一個(gè)繼承了,我們?cè)谥爸v了種繼承方式,分別是原型鏈,借用構(gòu)造函數(shù)繼承,組合繼承,原型式繼承,寄生式繼承,其中,前三種聯(lián)系比較緊密,后面兩種也比較緊密,而我們要講的最后一種,是和組合繼承還有寄生式繼承有關(guān)系的。 前言 趁周末結(jié)束之前趕緊先把坑填上。上回我們說(shuō)到了原型鏈,并且留下了幾個(gè)思考題,先把答案公布一下。 在最后一個(gè)例子里,console.log(b1.c...

    evin2016 評(píng)論0 收藏0
  • JS基礎(chǔ)】原型對(duì)象那些事(二)

    摘要:只是構(gòu)造函數(shù)上的一個(gè)屬性,它是一個(gè)指針,指向原型對(duì)象,并不表示就是原型對(duì)象。在上一個(gè)例子中,就是一個(gè)對(duì)象,這個(gè)對(duì)象可以說(shuō)是原生構(gòu)造函數(shù)的實(shí)例,所以也是一個(gè)對(duì)象,所以它也有屬性,不過(guò)它的指向也就是原型鏈的頂端,再往上就沒(méi)有了。 上一篇講了①原型對(duì)象是什么;②__proto__、prototype、constructor的關(guān)系;③原型對(duì)象的作用;④原型對(duì)象帶來(lái)的一些需要注意的問(wèn)題; 沒(méi)理解...

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

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

0條評(píng)論

閱讀需要支付1元查看
<