如何修复无法读取foreach循环中的属性错误

爱东神曲

我有一个foreach循环,在这里我从firebase提取数据。我想设置一个全局变量来保存“ spotrating”(每个对象的属性)。但是,当我在forEach循环中调用全局变量时,出现错误“无法设置未定义的属性”

当我尝试在代码的每个其他部分中记录全局变量时,它都起作用,但是当我在forEach循环中这样做时,它不起作用

spotrating: any;

稍后在我的代码中

temparr.forEach(function(firebaseSpot) {
        console.log(this.spotrating);
 });

我希望将spotrating的值打印到控制台,但是我一直在收到错误消息。“无法读取未定义的属性现货评分”

柴油机

的范围是this指您的功能,因为您没有使用粗箭头符号。spotrating在您的函数中未定义。如果要this引用外部函数(调用它的函数),请使用以下粗箭头表示法。范围界定会咬你。默认情况下,我使用粗箭头,除非我希望回调或函数的范围是该回调或函数。通常我不会。

temparr.forEach(firebaseSpot => {
        console.log(this.spotrating);
 });

文件

编辑:使用箭头函数实际上并没有像我以前所想的那样改变函数的作用域,我对上面的作用域一词的使用并不完全正确。箭头功能有其自己的范围。

因此,虽然范围不变,但其价值this却在变化。普通函数创建自己this的函数,而箭头函数则不如这里所述

在箭头函数中,这保留了封闭词法上下文this的值。在全局代码中,它将被设置为全局对象

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何修复在 PHP foreach 循环中错误循环的 jQuery 代码

如何修复角度2错误无法读取属性“ getOptional”?

如何修复webdriverio错误:TypeError:无法读取null的'then'属性?

如何修复“无法读取null的属性'addEventListener'”错误

如何修复“无法读取未定义的属性”错误

如何修复javascript中的“无法读取null的属性'id'”错误?

如何修复:“类型错误:无法读取 null 的属性‘打印类型’”

如何修复 for 循环中的错误。帕斯卡

修复For循环中的错误

如何修复错误,未捕获的类型错误:无法读取 null 的属性(读取“id”)

学习API:无法读取forEach循环的属性

如何修复无法读取null的属性“ clientWidth”?

如何修复“无法读取属性'createDocumentFragment'”

如何修复无法读取Angular中的属性

如何修复“未捕获的类型错误:无法读取 null 的属性‘值’”错误?

如何修复“未捕获的类型错误:无法读取 null 的属性‘样式’”的错误

如何在Python的while循环中修复此错误?

如何修复我的 while 循环中的逻辑错误?

如何在循环中修复“下标越界”错误

如何修复“错误TypeError:无法读取未定义的属性'style'”

如何修复 Angular 发布请求中的“无法读取未定义属性”错误

如何修复节点中的“无法读取未定义的属性'trim'”错误

如何:修复ReactJS类型错误-无法读取未定义的属性'map'

如何修复错误“ ERROR TypeError:无法读取未定义的属性'0'”

如何修复Angular 2中的“无法读取null的注射器属性”错误?

如何修复以下错误:“无法读取未定义的属性‘init’”?

如何修复JavaScript中的“无法读取null的属性'children'在...上”的错误

如何修复NextJS中的'TypeError:无法读取未定义的属性'id'错误?

如何修复NodeJS中的'无法读取未定义的属性'发射'错误