关于foreach中箭头函数的一点疑问

发布于 2022-09-12 23:28:40 字数 563 浏览 14 评论 0

各位大神,小弟有一事不明,想请各位大神指点迷津
先上代码:

    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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

夜灵血窟げ 2022-09-19 23:28:40
  • function 中的 this 是根据函数调用的时候确定 this 指向
  • bind 的就不用说了
  • 箭头函数的 this 是它所处环境的 this,与调用无关

请参阅:JavaScript 的 this 指向问题深度解析


已参与了 SegmentFault 思否「问答」打卡,欢迎正在阅读的你也加入。

江湖正好 2022-09-19 23:28:40

箭头函数中的this指向的是定义时的this,而不是执行时的this
关于this的文档:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/this

迷爱 2022-09-19 23:28:40

你可以看下深入理解this对象文章。

已参与了 SegmentFault 思否「问答」打卡,欢迎正在阅读的你也加入。

独自唱情﹋歌 2022-09-19 23:28:40

箭头函数是没有this的,它里面的this其实是外部环境的this

已参与了 SegmentFault 思否「问答」打卡,欢迎正在阅读的你也加入。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文