就如下圖所示,兩種方法的區別在哪里?
給對象直接添加屬性和在原型對象上添加有什么區別?
南日
2017-01-03 10:23:08
TA貢獻189條經驗 獲得超236個贊
區別在于繼承。
例如你舉得例子:?
var?book1?=?new?Book(); book1.c?=?'Hello'; var?book2?=?new?Book()? console.log(?book2.c?)?//沒有結果。 但是用?prototype?就不一樣了 Book.prototype.c?=?'Hello'; var?book2?=?new?Book(); console.log(book2.c)?//?Hello;
希望對你有幫助,望采納!
TA貢獻3593條經驗 獲得超0個贊
TA貢獻3條經驗 獲得超0個贊
你通過類不就是想通過這個模型創建更多的對象,如果在函數里直接添加方法,那你每次創建新的對象的時候都會重新創建這個函數,但是創建這個函數的機制都是相同的,這效率就低了。所以可以通過直接把這個方法函數在全局創建,但是在全局定義的函數只用于這個對象調用,那這個全局對象也太浪費了?;蛘哂泻芏喾椒?,那就要創建很多的全局函數,這更不可能了。
另一種就是通過原型定義。
舉報