成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

javascript面向?qū)ο?

Pandaaa / 724人閱讀

摘要:嚴(yán)格來說,這意味著對象是無特定順序的值的數(shù)組。構(gòu)造函數(shù)式缺點是在創(chuàng)建對象時,特別針對對象的屬性指向函數(shù)時,會重復(fù)的創(chuàng)建函數(shù)實例。此外,組合模式還支持向構(gòu)造函數(shù)傳遞參數(shù),可謂是集兩家之所長。

一般認(rèn)為,js是面向過程模型的語言,很多前端開發(fā)者,也偏向以面向過程的方式編寫代碼,其實在ECMA中是這樣定義過對象(object)的,“屬性的無序集合,每個屬性存放一個原始值、對象或函數(shù)”。嚴(yán)格來說,這意味著對象是無特定順序的值的數(shù)組。其中的屬性或方法都有一個名字,根據(jù)這個名字可以訪問相映射的值(值可以是基本值/對象/方法)。

在其他的類語言中,對象其實是基于模板來創(chuàng)建的,通過定義一個類作為對現(xiàn)實的抽象,然后由類來實例化對象;而在原型語言(比如js)中,對象是以通過克隆另一個對象的方式創(chuàng)建,被克隆的母體稱為原型對象。

創(chuàng)建對象的幾中方式:

1.工廠模式

2.構(gòu)造函數(shù)式

3.原型模式

4.構(gòu)造函數(shù)及原型模式的組合式

幾種方式的對比

1.工廠模式

可以傳遞參數(shù),但缺點是無法識別對象類型,因為創(chuàng)建對象都是使用Object的原生構(gòu)造函數(shù)來完成的。

2.構(gòu)造函數(shù)式

缺點是在創(chuàng)建對象時,特別針對對象的屬性指向函數(shù)時,會重復(fù)的創(chuàng)建函數(shù)實例。

3.原型模式

缺點是省略了為構(gòu)造函數(shù)傳遞初始化參數(shù),這在一定程序帶來不便;另外,最主要是當(dāng)對象的屬性是引用類型時,它的值是不變的,總是引用同一個外部對象,所有實例對該對象的操作都會其它實例。

4.構(gòu)造函數(shù)及原型模式的組合式

最為常用的定義類型方式,結(jié)合構(gòu)造函數(shù)模式與原型模式的優(yōu)點。構(gòu)造函數(shù)模式用于定義實例的屬性,而原型模式用于定義方法和共享的屬性。結(jié)果,每個實例都會有自己的一份實例屬性的副本,但同時又共享著對方方法的引用,最大限度的節(jié)約內(nèi)存。此外,組合模式還支持向構(gòu)造函數(shù)傳遞參數(shù),可謂是集兩家之所長。

注:以上內(nèi)容參考《JavaScript 高級程序設(shè)計》

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/52056.html

相關(guān)文章

  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對象”還好嗎?

    摘要:很多情況下,通常一個人類,即創(chuàng)建了一個具體的對象。對象就是數(shù)據(jù),對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍(lán)圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    李昌杰 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對象”還好嗎?

    摘要:很多情況下,通常一個人類,即創(chuàng)建了一個具體的對象。對象就是數(shù)據(jù),對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍(lán)圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    Lyux 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對象”還好嗎?

    摘要:很多情況下,通常一個人類,即創(chuàng)建了一個具體的對象。對象就是數(shù)據(jù),對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍(lán)圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    AaronYuan 評論0 收藏0
  • 面向對象JavaScript

    摘要:是完全的面向?qū)ο笳Z言,它們通過類的形式組織函數(shù)和變量,使之不能脫離對象存在。而在基于原型的面向?qū)ο蠓绞街?,對象則是依靠構(gòu)造器利用原型構(gòu)造出來的。 JavaScript 函數(shù)式腳本語言特性以及其看似隨意的編寫風(fēng)格,導(dǎo)致長期以來人們對這一門語言的誤解,即認(rèn)為 JavaScript 不是一門面向?qū)ο蟮恼Z言,或者只是部分具備一些面向?qū)ο蟮奶卣?。本文將回歸面向?qū)ο蟊疽?,從對語言感悟的角度闡述為什...

    novo 評論0 收藏0
  • javascript 面向對象版塊之理解對象

    摘要:用代碼可以這樣描述安全到達(dá)國外面向過程既然說了面向?qū)ο?,那么與之對應(yīng)的就是面向過程。小結(jié)在這篇文章中,介紹了什么是面向?qū)ο蠛兔嫦蜻^程,以及中對象的含義。 這是 javascript 面向?qū)ο蟀鎵K的第一篇文章,主要講解對面向?qū)ο笏枷氲囊粋€理解。先說說什么是對象,其實這個還真的不好說。我們可以把自己當(dāng)成一個對象,或者過年的時候相親,找對象,那么你未來的老婆也是一個對象。我們就要一些屬性,比...

    lovXin 評論0 收藏0
  • javascript面向對象之“多態(tài)”

    摘要:之前,本質(zhì)上不能算是一門面向?qū)ο蟮木幊陶Z言,因為它對于封裝繼承多態(tài)這些面向?qū)ο笳Z言的特點并沒有在語言層面上提供原生的支持。所以在中出現(xiàn)了等關(guān)鍵字,解決了面向?qū)ο笾谐霈F(xiàn)了問題。 ES6之前,javascript本質(zhì)上不能算是一門面向?qū)ο蟮木幊陶Z言,因為它對于封裝、繼承、多態(tài)這些面向?qū)ο笳Z言的特點并沒有在語言層面上提供原生的支持。但是,它引入了原型(prototype)的概念,可以讓我們以...

    JerryWangSAP 評論0 收藏0

發(fā)表評論

0條評論

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