使用角度5, 我叫denoFormat(item [“ DENOMINATION”]) 我收到以下错误堆栈
vendor.91392bd4e66ade432f98.bundle.js:1错误TypeError:无法读取 未定义的属性“ denoFormat” 在main.e31e50ee66f46596cba1.bundle.js:1 在Function.g.map.g.collect(供应商91392bd4e66ade432f98.bundle.js:1) 在e._next(main.e31e50ee66f46596cba1.bundle.js:1) 在e.T14 + .e .__ tryOrUnsub(vendor.91392bd4e66ade432f98.bundle.js:1) 在e.T14 + .e。next(vendor.91392bd4e66ade432f98.bundle.js:1) 在e.T14 + .e.next(vendor.91392bd4e66ade432f98.bundle.js:1) 在e.T14 + .e。next(vendor.91392bd4e66ade432f98.bundle.js:1) 在e.L8VJ.e._next(vendor.91392bd4e66ade432f98.bundle.js:1) 在e.T14 + .e。next(vendor.91392bd4e66ade432f98.bundle.js:1) 在XMLHttpRequest.s(vendor.91392bd4e66ade432f98.bundle.js:1)
如果我要使用item [“ DENOMINATION”],则不会发生任何错误。有人可以解释发生了什么事吗?
var _data = [ { DENOMINATION: 0, FIT: 0, UNFIT: 0},
{ DENOMINATION: 1, FIT: 2157, UNFIT: 1842},
{ DENOMINATION: 2, FIT: 2455, UNFIT: 2031 }
];
var arr = [];
arr.push(_.map(this._data ,function(item){
if (((item["FIT"] + item["UNFIT"]) != 0) && (item["DENOMINATION"] <= 5)){
return {"name": this.denoFormat(item["DENOMINATION"]) ,"series": [
{
"name": "FIT",
"value": item["FIT"]
},
{
"name": "UNFIT",
"value": item["UNFIT"]
}
]}
} else{
return;
}
}));
denoFormat(n){
var val;
switch (n){
case 0:
val = 1000;
break;
case 1:
val = 5000;
break;
etc.
}
return val;
}
答案 0 :(得分:3)
在这种情况下,必须使用箭头功能来防止范围更改。
arr.push(_.map(this._data , (item) => {
// ...
this.denoFormat()
//...
}