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

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

關于javascript的原型鏈的問題,var obj = new foo()的意思?

關于javascript的原型鏈的問題,var obj = new foo()的意思?

Gavin_Alison 2016-07-19 16:41:52
求大神解答!var obj = new foo()的意思?是不是obj指向 foo.prototype,還是指向foo,foo是對象,foo.prototype是原型,這個問題是在《javscript深入簡出》的4-2創建對象中的。希望能對著視頻中的圖講解一下,謝謝了!
查看完整描述

4 回答

已采納
?
tyc1

TA貢獻9條經驗 獲得超7個贊

var obj = new foo();

  1. 首先new后面的全部是構造函數,所以foo是一個構造函數

  2. 每個函數都會有一個prototype屬性,它的類型是object,所以叫對象屬性,還有一個constructor屬性,指向的就是function foo(){}這個函數

  3. new出來的都是對象,所以obj是一個對象,對象上有一個__proto__標簽,但這個標簽不對外暴露,這個跟跟原型prototype是不一樣的,不要弄混淆了。

  4. 這個__proto__標簽指向的就是foo的原型,即foo.prototype

查看完整回答
2 反對 回復 2016-07-19
?
Despicableme01

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

foo()是一個構造函數,構造函數是用來新建并初始化一個新對象的函數。而構造函數中的屬性和構造函數原型中的屬性就初始化了這個新對象的自有屬性和共有屬性。

構造函數中的屬性是 使用這個構造函數實例化出來的新對象的自有屬性,也就是相當于復制了一份給了這個新對象,所以用delete方法刪除新對象的一個自有屬性的話,新對象中的這個自有屬性就不復存在了。

而構造函數中的原型是 使用這個構造函數實例化出來的新對象的共有屬性,所有用這個構造函數實例化出來的新對象的共有屬性都指向這個原型中的對象。對共有屬性的修改刪除不會影響這個原型對象。對共有屬性的修改相當于給新對象添加了一個新的自有屬性。

查看完整回答
1 反對 回復 2016-07-19
  • Gavin_Alison
    Gavin_Alison
    謝謝你的解答,但是其他的更詳細,你也可以看看。
?
剛毅87

TA貢獻345條經驗 獲得超309個贊

obj為 foo 實例化的對象.

查看完整回答
反對 回復 2016-07-19
?
Gavin_Alison

TA貢獻8條經驗 獲得超10個贊

希望能對著視頻中的圖講解一下,謝謝了!

查看完整回答
反對 回復 2016-07-19
  • 4 回答
  • 2 關注
  • 2542 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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