ES6箭头函数使用call
本文将介绍ES6箭头函数的特性以及在使用call和apply方法时this指向的问题。

箭头函数的特性
箭头函数this的特性包括两个方面:A.箭头函数内部的this是词法作用域,有上下文确定;B.箭头函数this是在‘定义函数’的时候绑定,而不是在‘执行函数’的时候绑定。词法作用域是指变量的作用域在写代码时就已经确定了。JavaScript使用的就是词法作用域。这意味着在处理代码时不会改变作用域。
箭头函数的主要特性有三个:A.箭头函数没有自己的this对象;B.箭头函数的this永远指向其父作用域;C.任何方法都改变不了this,包括call,apply,bind。
使用call方法时this指向的问题
下图是一个示例代码,代码中使用call方法无法改变this的指向,全局this指向的是window对象,fn函数也是全局,fn函数this指向全局,也就是window对象,等同于window.obj指向了window.fn,而所有函数和对象都是window对象的属性,apply同理,所以两次的值都为1。

从上述代码示例可以看出,在使用箭头函数时,无法通过call或apply方法改变this的指向。
本文作者:朱维 本文来源:IT那活儿(上海新炬王翦团队)
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6284.html
