One Hundred Years of Solitude

扬帆,启航!

ES6箭头函数的this指向

普通函数里的this指向:

test()等价于window.test()

对象形式

因为是o调用的o下面的getname方法,所以this指向o

对象形式中的箭头函数

箭头函数的this对象:就是定义时所在的对象,而不是使用时所在的对象,也就是根据外层(函数或者全局)作用域来决定this

例子继续

这个例子里的箭头函数this往外层找作用域,找到了,这个箭头函数处于getname函数的作用域,getname是o对象下面的,箭头函数里的this也就指向o对象

这个foo函数本来是window.foo(),this是window,call改变了this 的执行上下文,foo里的this就指向call()传进去的对象
如果直接执行foo() 就会打印出id :21

总结:

普通函数this指向:谁调用了函数 函数里的this就指向谁

箭头函数的this指向:就是定义时所在的对象,而不是使用时所在的对象,也就是根据外层(函数或者全局)作用域来决定this

点赞

发表评论

电子邮件地址不会被公开。