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

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

請幫忙解釋一段代碼,謝謝!

請幫忙解釋一段代碼,謝謝!

undertale 2016-09-20 03:01:22
    这段代码不是很理解,     我划横线的这个this指的是什么?应该指的是John吧?John instanceof Student 因为没加new 所以返回false 然后执行了else里面的语句。但是为什么这样我不能理解,这个函数传入的是props 也就是下面对应的{name :"John"}这个键值对,为什么this 会指John? 应该指的是这个键值对啊。说到底还是不理解this的问题,请大家指教,谢谢     btw. 如果第一个条件成立了 执行this.name=props.name是什么意思 ,我也不是很看得懂。因为是菜鸟麻烦大家耐心开导~鞠躬😘
查看完整描述

2 回答

已采納
?
stone310

TA貢獻361條經驗 獲得超191個贊

首先了解一點,this是在調用時才確定的;

當執行var John=Student({name:"John"})這句時,相當于調用了Student(),參數是{name:"John"},那么這個時候是誰調用的誰就是this,所以這時this指window;

if不成立,執行else,即var John=new Student({name:"John"}}),這么寫則是創建一個Stduent這個構造函數的實例,是被Student調用的,所以這時this是Student;

所以this不要看參數,不要看放在那個對象上,只要看調用時,是被哪個對象調用的,this就是誰


查看完整回答
反對 回復 2016-09-20
  • undertale
    undertale
    請問this指window是什么意思啊,還是有點不懂
  • stone310
    stone310
    this指向window意思就是當函數并未被任何對象調用時,就屬于window;就如上面,就是將Student()這個函數賦值給John,當函數執行的時候并沒有任何對象去調用它,于是就可以說指向window
  • undertale
    undertale
    好的 謝謝您的耐心解答
  • 2 回答
  • 0 關注
  • 1370 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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