关于foreach中箭头函数的一点疑问
各位大神,小弟有一事不明,想请各位大神指点迷津
先上代码:
var arr = ["蒙奇.D.路飞", "罗罗诺亚.索隆", "文斯莫克.山治"];
arr.forEach((item, index, array) => {
console.log(this);
}, arr);
执行结果:
另一种方式的代码:
var arr = ["蒙奇.D.路飞", "罗罗诺亚.索隆", "文斯莫克.山治"];
arr.forEach(function(item, index, array) {
console.log(this);
}, arr);
执行结果:
为什么两次this的指向不一样?是箭头函数与普通函数的区别造成的吗?望各位大神指点小弟先谢过了
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
this
是根据函数调用的时候确定this
指向this
是它所处环境的this
,与调用无关请参阅:JavaScript 的 this 指向问题深度解析
箭头函数中的this指向的是定义时的this,而不是执行时的this
关于this的文档:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/this
你可以看下深入理解this对象文章。
箭头函数是没有this的,它里面的this其实是外部环境的this