第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

oop上這節(jié)課有很多疑惑

new一個對象和object.create(xx.prototype)有什么區(qū)別?student里為什么要用person.call?

正在回答

2 回答

老師用的是組合繼承,Person是父類,Student是子類,在student里用person.call(this,參數(shù)),是構造函數(shù)式繼承的精髓,由于call方法可以更改函數(shù)的作用環(huán)境,相當于此時student繼承了person的所有屬性。student.prototype=object.creat(person.prototype);

student.prototype.constructor=student;

我認為這兩句話是類氏繼承,作用等于student.prototype=new person();就是說實例化父類創(chuàng)建一個新的對象,這個對象的__proro__指向父類.prototype,這樣就擁有父類的所有屬性,然后把這個對象賦值給student的原型對象,這樣student就繼承了person的所有屬性。

不過這樣寫的缺點在于,構造函數(shù)繼承時執(zhí)行了一遍父類的構造函數(shù),實現(xiàn)子類原型繼承的類氏繼承時又調用了一遍父類構造函數(shù)。

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

我的理解是,new一個對象和create新建一個對象是一樣的。

new的用法是ES3的用法,object.create是ES5的用法。而且new的問題在于遇到需要傳參數(shù)的話,不傳有可能會報錯(暫時還沒證明)??不過老師說的是會顯得很奇怪。

student用的是東西是person都有的所以直接用call引用person就好了省了自己重復寫同樣的東西了,用apply也可以。(我自己是上述這么理解的,既然student能用person實現(xiàn)一部分功能,為什么還要再寫一遍吶)

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

舉報

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

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

進入課程

oop上這節(jié)課有很多疑惑

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

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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