为了账号安全,请及时绑定邮箱和手机立即绑定

关于this 的问题

关于this 的问题

千巷猫影 2018-12-27 17:13:28
        <div id="father">            <div id="son"></div>        </div>        <script src="jquery-1.11.3.js"></script>        <script>            $(function(){                $("#son").fadeOut(3000,function(){this.remove()});            });        </script>如上的简单代码,页面加载完,#son在3秒内淡出页面,然后从dom树删除。上面的方法可以实现。但是当我把fadeOut中的回调函数改成箭头函数,如下:            $(function(){                $("#son").fadeOut(3000,()=>this.remove());            });这样就无法删除了,this指向了window。请教是为什么??不应该是第一种方法中的this指向window吗??谢谢
查看完整描述

1 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

函数中的this是在函数被调用时生成的,是传递给函数的一个隐式变量,指向函数的上下文。所以this的指向跟函数的调用方法有关,当函数作为对象的方法调用时,this指向的是这个方法的对象。
You can't use 'macro parameter character #' in math mode("#son")对象调用了这个方法,所以回调函数中this就指向$("#son");
在ES6语法规定箭头函数不再绑定this,所以箭头函数中this始终指向window。

查看完整回答
反对 回复 2019-01-02
  • 1 回答
  • 0 关注
  • 440 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信