为了账号安全,请及时绑定邮箱和手机立即绑定

请帮忙解释一段代码,谢谢!

请帮忙解释一段代码,谢谢!

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 关注
  • 1347 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信