这段代码不是很理解,
我划横线的这个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就是谁
添加回答
举报
0/150
提交
取消