[英]angular 5 weird behavior when calling function
使用Angular 5,我調用denoFormat(item [“ DENOMINATION”])得到以下錯誤堆棧
vendor.91392bd4e66ade432f98.bundle.js:1錯誤TypeError:無法讀取Function.g.map.g.collect處main.e31e50ee66f46596cba1.bundle.js:1處未定義的屬性'denoFormat'(vendor.91392bd4e66ade432f98.bundle.js:1 ),位於e.T14 + .e .__ tryOrUnsub(vendor.91392bd4e66ade432f98.bundle.js:1)的e._next(main.e31e50ee66f46596cba1.bundle.js:1)在e.T14 + .e.next(vendor.91392bd4undeund js:1)在e.T14 + .e._next(vendor.91392bd4e66ade432f98.bundle.js:1)在e.T14 + .e.next(vendor.91392bd4e66ade432f98.bundle.js:1)在e.L8VJ.e._next (供應商91392bd4e66ade432f98.bundle.js:1)在XMLHttpRequest.s(供應商91392bd4e66ade432f98.bundle.js:1)中的e.T14 + .e.next(供應商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;
}
在這種情況下,您必須使用箭頭功能來防止范圍改變。
arr.push(_.map(this._data , (item) => {
// ...
this.denoFormat()
//...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.