网站搜索

angular - 内部函数中的 Typescript 变量未定义


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

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

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

this.someObj 未定义。是否有可能实现这一点?

答案#1

你拼写错了 this.somObj。

你必须在之前用另一个变量引用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 )); }

答案#2

someObj = [ { id=1 }];

你的意思是:

someObj = [ { id:1 }];

?