请问这33行 为什么是fn.apply,怎么理解
来源:3-9 在ES5中模拟类
敲代码时长两年半的练习生
2019-10-11 19:09:25

1回答
同学你好,首先, 我们要明白apply方法作用是什么? apply方法接收两个参数, 示例:fn.apply(obj, args)其中第一个参数表示fn函数内部的this指向的对象, 第二个参数是传入fn函数的参数哦。
然后, 我们再来理解, 这里使用apply主要是为了改变函数的内部this指向问题哦。
老师这里举个对比的示例帮助同学更好的理解
在Person中打印this,查看输出的值

不使用apply的方法, 直接使用fn函数

然后打印Person中的this, 如下图所示, 因为Person函数是在全局下声明的, 所以此时内部的this是指向全部变量window

使用apply方法的改变函数内部的this指向

打印结果

同学可以自己下去测试一下, 结合代码实现的效果帮助自己更好的理解哦
如果帮助到了你, 欢迎采纳!
祝学习愉快~~~~
相似问题