第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在JavaScript中可以使用什么技術(shù)來定義類,它們的權(quán)衡是什么?

在JavaScript中可以使用什么技術(shù)來定義類,它們的權(quán)衡是什么?

郎朗坤 2019-07-02 14:43:41
在JavaScript中可以使用什么技術(shù)來定義類,它們的權(quán)衡是什么?我更喜歡在大型項目中使用OOP,就像我現(xiàn)在正在做的那樣。我需要用JavaScript創(chuàng)建幾個類,但是,如果我沒有弄錯的話,至少有幾種方法可以做到這一點。語法是什么?為什么要這樣做?我想避免使用第三方庫-至少一開始是這樣的。為了尋找其他答案,我找到了這篇文章用JavaScript進(jìn)行面向?qū)ο蟮木幊蹋谝徊糠郑豪^承-DocJavaScript討論JavaScript中的面向?qū)ο缶幊?。有沒有更好的繼承方法?
查看完整描述

3 回答

?
躍然一笑

TA貢獻(xiàn)1826條經(jīng)驗 獲得超6個贊

在JavaScript中定義類的最佳方法是不定義類。

我是認(rèn)真的。

面向?qū)ο笥袔追N不同的風(fēng)格,其中一些是:

  • 基于類的OO(第一次由Smalltalk引入)
  • 基于原型的OO(首先由Self引入)
  • 基于多方法的OO(我認(rèn)為首次由CommonLoops引入)
  • 基于謂詞的OO(不知道)

也許還有一些我不知道的人。

JavaScript實現(xiàn)了基于原型的OO。在基于原型的OO中,新對象是通過復(fù)制其他對象(而不是從類模板中實例化)創(chuàng)建的,方法直接存在于對象中而不是類中。繼承是通過委托完成的:如果對象沒有方法或?qū)傩裕瑒t會在其原型(即從其克隆的對象)上查找該對象,然后再查找原型的原型,以此類推。

換句話說:沒有課。

JavaScript實際上對該模型進(jìn)行了很好的調(diào)整:構(gòu)造函數(shù)。也就是說,你不僅可以通過復(fù)制現(xiàn)有的物體來創(chuàng)建對象,還可以通過“稀薄的空氣”來構(gòu)造它們。如果使用new關(guān)鍵字,則該函數(shù)將成為構(gòu)造函數(shù),而this關(guān)鍵字不會指向當(dāng)前對象,而是指向新創(chuàng)建的“空”對象。因此,您可以任意配置對象。這樣,JavaScript構(gòu)造函數(shù)就可以在傳統(tǒng)的基于類的OO中扮演類的角色:充當(dāng)新對象的模板或藍(lán)圖。

現(xiàn)在,JavaScript是一種非常強大的語言,因此實現(xiàn)一個基于類的面向?qū)ο笙到y(tǒng)非常容易。在JavaScript中如果你想的話。但是,只有當(dāng)您確實需要它時才應(yīng)該這樣做,而不僅僅是因為Java就是這樣做的。


查看完整回答
反對 回復(fù) 2019-07-02
  • 3 回答
  • 0 關(guān)注
  • 332 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號