Estoy tratando de entender cómo funciona el enlace en Javascript y funciona el siguiente ejemplo. Pero cuando trato de usar this.numbers.map(this.doSomething) me da un error porque se está llamando estáticamente a doSomething . Para que funcione de nuevo tendré que usar el segundo ejemplo, pero no entiendo exactamente lo que está pasando. ¿Alguien tiene algunos enlaces/documentación que pueda usar para entender esto un poco mejor?
Primer ejemplo:
export class SomeClass{ numbers = [1, 2, 3]; showNumber = (value: number) => console.log(`number is:`, value); processNumbers = () => { const a = this.numbers.map(b => this.doSomething(b)); // this gives me the error: 'showNumber' doesn't exist // const a = this.numbers.map(this.doSomething); // do something with a } private doSomething(value: number) { this.showNumber(value); } } const someClass = new SomeClass(); someClass.processNumbers();Segundo ejemplo:
export class SomeClass{ numbers = [1, 2, 3]; showNumber = (value: number) => console.log(`number is:`, value); processNumbers = () => { const a = this.numbers.map(this.doSomething); // do something with a } private doSomething = (value: number) => { this.showNumber(value); } } const someClass = new SomeClass(); someClass.processNumbers();