内部函数内部未充分定义的Typescript变量

时间:2018-10-27 21:46:49

标签: angular function typescript variables scope

我正在尝试访问函数中函数内部的外部变量,但它在调试器中显示为未定义变量:

export class TestClass {
  someObj = [ { id=1 }];

  changeData() {
    const someId = 1;
    const test = {
       attr: function() { return (this.somObj.find(x => x.id === someId ));   }
    };
  }
}

this.someObj未定义。有可能做到这一点吗?

2 个答案:

答案 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 }];