请问这33行 为什么是fn.apply,怎么理解

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,首先, 我们要明白apply方法作用是什么? apply方法接收两个参数, 示例:fn.apply(obj, args)其中第一个参数表示fn函数内部的this指向的对象, 第二个参数是传入fn函数的参数哦。

然后, 我们再来理解, 这里使用apply主要是为了改变函数的内部this指向问题哦。

老师这里举个对比的示例帮助同学更好的理解

在Person中打印this,查看输出的值

http://img1.sycdn.imooc.com//climg/5da12f0f0969471004650162.jpg

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

    http://img1.sycdn.imooc.com//climg/5da12ece098d895807180235.jpg

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

    http://img1.sycdn.imooc.com//climg/5da12ede091ad49208210041.jpg

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

    http://img1.sycdn.imooc.com//climg/5da12f68090910e407030209.jpg

    打印结果

    http://img1.sycdn.imooc.com//climg/5da12f7b0992bd9b03280114.jpg

同学可以自己下去测试一下, 结合代码实现的效果帮助自己更好的理解哦

如果帮助到了你, 欢迎采纳!

祝学习愉快~~~~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师