我有一个foreach循环,可以从firebase提取数据。 我想设置一个全局变量来保存“ spotrating”(每个对象的属性)。 但是,当我在forEach循环中调用全局变量时,出现错误“无法设置未定义的属性发现”
当我尝试在代码的每个其他部分中记录全局变量时,它都起作用,但是当我在forEach循环中执行该操作时,它不起作用
spotrating: any;
稍后在我的代码中
temparr.forEach(function(firebaseSpot) {
console.log(this.spotrating);
});
我希望将Spotrating的值打印出到控制台,但我会不断收到错误。 “无法读取未定义的房地产现货评级”
答案 0 :(得分:0)
this
的范围是指您的功能,因为您没有使用粗箭头符号。 spotrating
未在您的函数中定义。如果要this
引用外部函数(调用它的函数),请使用以下粗箭头表示法。范围界定会咬你。默认情况下,我使用粗箭头,除非我希望回调或函数的范围是该回调或函数。通常我不会。
temparr.forEach(firebaseSpot => {
console.log(this.spotrating);
});