我正在尝试访问函数中函数内部的外部变量,但它在调试器中显示为未定义变量:
export class TestClass {
someObj = [ { id=1 }];
changeData() {
const someId = 1;
const test = {
attr: function() { return (this.somObj.find(x => x.id === someId )); }
};
}
}
this.someObj未定义。有可能做到这一点吗?
答案 0 :(得分:3)
您拼写错误的this.somObj
。
您必须先用{strong>一个其他变量来引用this
:
changeData() {
const someId = 1;
const that = this;
const test = {
attr: function() { return (that.someObj.find(x => x.id === someId )); }
};
}
如其他人所述,您还可以使用箭头功能:
attr: () => { return (this.someObj.find(x => x.id === someId )); }
答案 1 :(得分:1)
someObj = [ { id=1 }];
您的意思是:
someObj = [ { id:1 }];
?