angular - Typescript-variabel odefinierad inuti inre funktion


Jag försöker komma åt en yttre variabel inuti en funktion inom en funktion, men den visar variabeln som odefinierad i min debugger:

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

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

this.someObj är odefinierad. Är det möjligt att uppnå detta?

Svar #1

Du stavade fel på this.somObj.

Du måste hänvisa till this med en annan variabel innan:

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

Som någon annan har sagt, kan du också använda en pilfunktion:

attr: () => { return (this.someObj.find(x => x.id === someId )); }

Svar #2

someObj = [ { id=1 }];

menade du:

someObj = [ { id:1 }];

?