3 回答

TA貢獻(xiàn)189條經(jīng)驗(yàn) 獲得超236個(gè)贊
區(qū)別在于繼承。
例如你舉得例子:?
var?book1?=?new?Book(); book1.c?=?'Hello'; var?book2?=?new?Book()? console.log(?book2.c?)?//沒有結(jié)果。 但是用?prototype?就不一樣了 Book.prototype.c?=?'Hello'; var?book2?=?new?Book(); console.log(book2.c)?//?Hello;
希望對(duì)你有幫助,望采納!

TA貢獻(xiàn)178條經(jīng)驗(yàn) 獲得超70個(gè)贊
上面屬于原型擴(kuò)展,下面是直接定義。沒有大的本質(zhì)區(qū)別,不同在于,你并不是任何時(shí)候都可以像第二種一樣直接對(duì)Book原型內(nèi)部定義。

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

TA貢獻(xiàn)3條經(jīng)驗(yàn) 獲得超0個(gè)贊
你通過類不就是想通過這個(gè)模型創(chuàng)建更多的對(duì)象,如果在函數(shù)里直接添加方法,那你每次創(chuàng)建新的對(duì)象的時(shí)候都會(huì)重新創(chuàng)建這個(gè)函數(shù),但是創(chuàng)建這個(gè)函數(shù)的機(jī)制都是相同的,這效率就低了。所以可以通過直接把這個(gè)方法函數(shù)在全局創(chuàng)建,但是在全局定義的函數(shù)只用于這個(gè)對(duì)象調(diào)用,那這個(gè)全局對(duì)象也太浪費(fèi)了?;蛘哂泻芏喾椒ǎ蔷鸵?jiǎng)?chuàng)建很多的全局函數(shù),這更不可能了。
另一種就是通過原型定義。
添加回答
舉報(bào)