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ō)你理解了嗎?

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é)果。
添加回答
舉報(bào)