还是不懂apply..
来源:3-9 在ES5中模拟类
hyperse
2020-09-19 01:02:22
看了好几遍其他问答中的答案,总感觉没有懂透,可以麻烦老师用更通俗一点的说法讲一下这个方法吗?谢谢!
3回答
好帮手慕言
2020-09-21
同学你好,第二个参数是以数组的形式传入的,例如在调用的时候,传递数字1,如下:

控制台:

同学可以动手敲一下例子,印象会更深刻。祝学习愉快~
好帮手慕星星
2020-09-19
同学你好,可以参考下面的例子进行理解

有两个对象obj1和obj2,分别都有name属性和say方法,say方法中输出name的值。
第一次调用obj2.say(),那么输出的是

第二次调用使用了apply方法,会改变this的指向,原本this指向的是obj2,因为是obj2调用的,现在对象改为了obj1,也就是obj1调用的,输出的是

这样就改变了this的指向。
上面讲解的apply方法的第一个参数,如果需要传入内容,那么第二个参数需要是数组。
针对提问回复:
fn函数是window对象调用的,所以this指向的是window ,然后使用apply方法,改变this指向创建的Person 对象。
自己再理解下,祝学习愉快!
hyperse
提问者
2020-09-19
还有一个疑问就是为什么说一开始this是指向window的呢,
相似问题