亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

給對象直接添加屬性和在原型對象上添加有什么區別?

給對象直接添加屬性和在原型對象上添加有什么區別?

南日 2017-01-03 10:23:08
就如下圖所示,兩種方法的區別在哪里?
查看完整描述

3 回答

已采納
?
MarlboroKay

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;

希望對你有幫助,望采納!

查看完整回答
4 反對 回復 2017-01-03
  • 慕設計2812226
    慕設計2812226
    感覺你說的是廢話,book2你有賦值嗎? 你都沒有給book2賦值,輸出book2.c肯定沒結果
?
一瞬兒光

TA貢獻178條經驗 獲得超70個贊

上面屬于原型擴展,下面是直接定義。沒有大的本質區別,不同在于,你并不是任何時候都可以像第二種一樣直接對Book原型內部定義。

查看完整回答
1 反對 回復 2017-01-03
?
chenzuyibao

TA貢獻3條經驗 獲得超0個贊

你通過類不就是想通過這個模型創建更多的對象,如果在函數里直接添加方法,那你每次創建新的對象的時候都會重新創建這個函數,但是創建這個函數的機制都是相同的,這效率就低了。所以可以通過直接把這個方法函數在全局創建,但是在全局定義的函數只用于這個對象調用,那這個全局對象也太浪費了?;蛘哂泻芏喾椒?,那就要創建很多的全局函數,這更不可能了。

另一種就是通過原型定義。

查看完整回答
反對 回復 2017-01-03
?
Doit的信仰

TA貢獻44條經驗 獲得超11個贊

區別有啊

查看完整回答
反對 回復 2017-01-04
  • 3 回答
  • 0 關注
  • 3246 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號