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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

關(guān)于javascript設(shè)計(jì)模式里構(gòu)造器模式的問(wèn)題

關(guān)于javascript設(shè)計(jì)模式里構(gòu)造器模式的問(wèn)題

看到這里一篇文章《JavaScript設(shè)計(jì)模式一:工廠模式和構(gòu)造器模式》https://segmentfault.com/a/11...關(guān)于這篇文章里的構(gòu)造器模式。最后有一段:帶原型的Constructor(構(gòu)造器)    <script type="text/javascript">            function Car(model,year,miles) {                this.model = model;                this.year = year;                this.miles = miles;            }            /** 關(guān)于下面這段代碼 **/            Car.prototype.run = function () {                return this.model + " has done " + this.miles + " miles ";            };            /** 關(guān)于上面這段代碼 **/            var Benz = new Car('S350',2010,20000);            var Ford = new Car('Ford',2012,12000);                console.log(Benz.run());//"S350 has done 20000 miles "            console.log(Ford.run());   </script>      不用prototyp,把this.run = function(){...}當(dāng)成方法寫(xiě)在構(gòu)造函數(shù)里也可以正常運(yùn)行,兩者有什么不一樣?   和單例模式有關(guān)嗎?還是可以避免重復(fù)調(diào)用的資源浪費(fèi)?
查看完整描述

2 回答

?
慕斯王

TA貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊

如果你只有 Car 這一個(gè)類(lèi)用到 run 方法,那么兩種寫(xiě)法在性能上是沒(méi)有區(qū)別的。

但是如果你有 Car1 到 Car10 十個(gè)類(lèi):
如果你寫(xiě)在類(lèi)內(nèi)部,那么你的內(nèi)存里將有10個(gè) run 方法。
如果你使用prototyp,那么你的內(nèi)存里將有1個(gè) run 方法。

這么說(shuō)你理解了嗎?


查看完整回答
反對(duì) 回復(fù) 2018-08-06
?
楊魅力

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

樓上說(shuō)的不正確,寫(xiě)到原型上避免的不是類(lèi)之間的浪費(fèi),是不同對(duì)象之間的浪費(fèi),你如果寫(xiě)在構(gòu)造函數(shù)中,沒(méi)次調(diào)用new獲取一個(gè)對(duì)象,都會(huì)生成一個(gè)函數(shù)體完全一樣的函數(shù),而使用prototype委托,則所有的實(shí)例的run方法都委托到了prototype對(duì)象上,多少個(gè)對(duì)象都只有一個(gè)函數(shù),樓上說(shuō)的類(lèi)是錯(cuò)的。原型就是構(gòu)造函數(shù)和對(duì)象實(shí)例的鏈接,與不同的類(lèi)沒(méi)有關(guān)系。他說(shuō)的十個(gè)類(lèi),除非你每次生成一個(gè)類(lèi)都自己重新寫(xiě)一遍run函數(shù),否則不會(huì)造成他說(shuō)的那個(gè)結(jié)果。

查看完整回答
反對(duì) 回復(fù) 2018-08-06
  • 2 回答
  • 0 關(guān)注
  • 1674 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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