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

資訊專欄INFORMATION COLUMN

對象、構(gòu)造函數(shù)和prototype

kuangcaibao / 554人閱讀

摘要:創(chuàng)建對象和構(gòu)造函數(shù)創(chuàng)建對象有多種方法,上述的一種,屬于構(gòu)造函數(shù)。但是這種方法由于沒有解決對象識別的問題直到對象的類型,并不好接下來的一種方法就是下面重點介紹的自定義構(gòu)造函數(shù)。

對象

每個對象的創(chuàng)建都基于引用類型,比如:


我們可以創(chuàng)建自定義對象,最簡單的方法就是創(chuàng)建一個Object的實例,比如:


上面的例子創(chuàng)建了名為person的對象,并添加了3個屬性。

創(chuàng)建對象和構(gòu)造函數(shù)

1.創(chuàng)建對象有多種方法,上述的一種,屬于Object構(gòu)造函數(shù)。
2.此外,還可以用字面量對象創(chuàng)建一個函數(shù),如下:


3.藍(lán)后,是第三種,用工廠模式 創(chuàng)建,如下:


person()函數(shù)會根據(jù)接收的參數(shù)創(chuàng)建一個包含所有信息的對象。但是這種方法由于沒有解決對象識別的問題(直到對象的類型),并不好~
接下來的一種方法就是下面重點介紹的:自定義構(gòu)造函數(shù)。

自定義構(gòu)造函數(shù)
與上述的構(gòu)造函數(shù)不同,用Object、Array之類的構(gòu)造函數(shù)被稱為原生構(gòu)造函數(shù)。自定義構(gòu)造函數(shù)可以自定義對象的屬性和方法。構(gòu)造函數(shù)就是初始化一個實例對象。

讓我們來看一個栗子~


注意~構(gòu)造函數(shù)有一個特點,默認(rèn)函數(shù)首字母大寫。在上面的栗子中,person1就是Person對象的一個實例。person1有一個constructor的屬性,指向Person

prototype和原型對象

我們創(chuàng)建的每一個函數(shù)都有一個prototype屬性,這個屬性是一個指針,指向一個對象,這個對象包含了由特定類型所有實例共享的屬性和方法。我們可以說Person.prototype是person1的原型對象。所以,Person.prototype更像是一個模型和中轉(zhuǎn)站。讓我們看下面的栗子:


如上,我們將callName()方法和所有的屬性添加到了Person的prototype屬性中。Person.prototype是一個第三者,Person和person1實際上是沒有鏈接的,他們兩者的聯(lián)系是通過Person.prototype來建立的,而它里面會保存包括name、age、job等屬性和callName()方法。或許通過下面這個圖更好理解。

更簡單的原型語法

我們可能會覺得每次都要寫一遍Person.prototype會比較麻煩,所以我們可以用字面量的方式:


上面的代碼最終的執(zhí)行結(jié)果也是一樣的,只是一點不同:constructor不再指向Person了。

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

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

相關(guān)文章

  • 學(xué)習(xí)JavaScript的原型筆記

    摘要:通過同一個構(gòu)造函數(shù)實例化的多個對象具有相同的原型對象。構(gòu)造函數(shù)的原型對象是實例對象通過屬性也指向原型對象。如果把函數(shù)當(dāng)成實例對象的話,其構(gòu)造函數(shù)是,其原型對象是類似地,函數(shù)的構(gòu)造函數(shù)也是,其原型對象是。 JavaScript的原型(prototype、__proto__、constructor) 構(gòu)造函數(shù):function Foo() {};實例對象: let f1 = new Foo...

    Nino 評論0 收藏0
  • JS中的原型鏈原型的認(rèn)識

    摘要:在上面的各種原型的變換中,其實難點就在于構(gòu)造函數(shù)也是對象原型對象等所有對象都由構(gòu)造這四個點。 這篇文章主要是學(xué)習(xí)一下JavaScript中的難點------原型和原型鏈 自定義一個對象 我們學(xué)習(xí)一門編程語言,必然要使用它完成一些特定的功能,而面向?qū)ο蟮恼Z言因為符合人類的認(rèn)知規(guī)律,在這方面做得很好,今天我以JS為例,探索一下JS不同于其他面向?qū)ο蟮恼Z言的地方-------原型和原型鏈 首...

    Juven 評論0 收藏0
  • JS中的原型鏈原型的認(rèn)識

    摘要:在上面的各種原型的變換中,其實難點就在于構(gòu)造函數(shù)也是對象原型對象等所有對象都由構(gòu)造這四個點。 這篇文章主要是學(xué)習(xí)一下JavaScript中的難點------原型和原型鏈 自定義一個對象 我們學(xué)習(xí)一門編程語言,必然要使用它完成一些特定的功能,而面向?qū)ο蟮恼Z言因為符合人類的認(rèn)知規(guī)律,在這方面做得很好,今天我以JS為例,探索一下JS不同于其他面向?qū)ο蟮恼Z言的地方-------原型和原型鏈 首...

    Shimmer 評論0 收藏0
  • JS 原型及原型鏈學(xué)習(xí)

    摘要:所以繼承了對象的所有方法,當(dāng)你用時,會先查一下它的構(gòu)造函數(shù)的原型對象有沒有有方法,沒查到的話繼續(xù)查一下的原型對象有沒有這個方法。 普通函數(shù)與構(gòu)造函數(shù)的區(qū)別 在命名規(guī)則上,構(gòu)造函數(shù)一般是首字母大寫,普通函數(shù)遵照小駝峰式命名法。 在函數(shù)調(diào)用的時候: function fn() { } 構(gòu)造函數(shù):1. new fn( ) 2 .構(gòu)造函數(shù)內(nèi)部會...

    PiscesYE 評論0 收藏0
  • JavaScript學(xué)習(xí)總結(jié)(五)原型原型鏈詳解

    摘要:原型對象內(nèi)部也有一個指針屬性指向構(gòu)造函數(shù)實例可以訪問原型對象上定義的屬性和方法。在創(chuàng)建子類型的實例時,不能向超類型的構(gòu)造函數(shù)中傳遞參數(shù)。 贊助我以寫出更好的文章,give me a cup of coffee? 2017最新最全前端面試題 私有變量和函數(shù) 在函數(shù)內(nèi)部定義的變量和函數(shù),如果不對外提供接口,外部是無法訪問到的,也就是該函數(shù)的私有的變量和函數(shù)。 function ...

    EscapedDog 評論0 收藏0

發(fā)表評論

0條評論

kuangcaibao

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<