普通函数的this指向和箭头函数的this指向小总结
普通函数:
? call apply bind ? fn.call(this指向,参数1,参数2,参数3); 调用函数,并且指定 this 的指向 ? fn.apply(this指向,[参数1,参数3]); 如果参数很多,可以放在一个数组中,此时用 apply 比较方便 ? var newFn = fn.bind(this指向); 作用: 复制一个新函数,并且绑定死 新函数的 this指向 5.看不见的调用: (1) 定时器里面的 this,指向 window (2) 事件处理函数的 this,指向事件源 箭头函数:
? 1.看当前箭头函数定义的环境是什么?(??小技巧:找上一个{}??) ? 2.遇到箭头函数的执行或调用,忽略,不看,对箭头函数this指向没有影响 ? 3.判断当前环境执行时this指向谁,箭头函数的this就指向谁 栗子: var url = "window"; 解析:箭头没有自己的this指向,它是定义在Antzone()函数中,当Antzone()调用的时候,this指向window,所以打印是window ? 栗子: var name = ‘window‘; 解析:b2()调用这个的时候,由于是箭头函数,没有自己的this,所以往上找,看他定义的环境,他是定义在延时器中,延时器中的this指向window,所以打印是window (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |