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

為了賬號安全,請及時綁定郵箱和手機立即綁定

繼承的一些問題

People.call(this,name,age)換成this=new Person(name,age)有區別嗎?

正在回答

2 回答

Person.call(this,name,age); ?其中的Person是指視頻中的構造函數:

function Person(name,age){

? ? this.name = name;

? ? this.age = age;

}

Person.call(this,name,age);其中的call是指Function.prototype.call(),其中的this在其上下文中指向Student對象。

因此,Person.call(this,name,age);是調用Person構造函數,并把Person構造函數中的this替換為傳入的this參數所代表的Student對象,因此Student對象便繼承了name和age兩個屬性。

1 回復 有任何疑惑可以回復我~

Person.call(this,name,age);這一句是讓Student繼承了Person中屬性,并沒有影響this指針。

而this=new Person(name,age);這一句將改變this指針的值使其變為Person類型的對象。因此通過Student構造器返回的對象為this是一個Person類型的對象。后面對Student.prototype所做的設置應該對返回的Person類型的對象不起作用。

0 回復 有任何疑惑可以回復我~
#1

qq_放飛心情_0 提問者

Person.call(this,name,age);這一句是讓Student繼承了Person中屬性是怎么繼承的,我的理解是讓他執行了那個函數,他這個對象就有了這2個屬性,相當于給他分配屬性
2016-08-06 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript深入淺出
  • 參與學習       281092    人
  • 解答問題       1054    個

由淺入深學習JS語言特性,且解析JS常見誤區,從入門到掌握

進入課程

繼承的一些問題

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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