猿问

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

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

undertale
浏览 1348回答 2
2回答

stone310

首先了解一点,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就是谁
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答