<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指向的是这个方法的对象。
在ES6语法规定箭头函数不再绑定this,所以箭头函数中this始终指向window。
添加回答
举报
0/150
提交
取消