así que he creado dos objetos: persona y Tim.
Me gustaría vincular la función logInfo a Tim, pero cuando llamo a esto con vinculación, me sigue dando:
Aquí está el código:
function hello() { console.log('Hello') } const person = { firstNAme: 'A', age: 26, sayHello: hello, sayHelloWindow: hello.bind(document), logInfo: function (job, phone) { console.group(`${this.firstNAme} info: `) console.log(`name is: ${this.firstNAme} and the age is: ${this.age}`) console.log(`Job is: ${this.job}`) console.log(`Phone is: ${this.phone}`) console.groupEnd() } } const Tim = { firstNAme: 'Tim', age: 22 } const infoTim = person.logInfo.bind(Tim) infoTim('clown', '100100-10010') // returns undefined values, why?¿Parece que me estoy perdiendo algo? ¡Gracias de antemano!
En la función logInfo , elimine this para job y phone , ya que se aceptan a través de argumentos y no son propiedad del objeto Tim . this siempre se refiere al objeto actual y this.something apunta a la propiedad del objeto.
Referir código actualizado
function hello() { console.log('Hello') } const person = { firstNAme: 'A', age: 26, sayHello: hello, sayHelloWindow: hello.bind(document), logInfo: function (job, phone) { console.group(`${this.firstNAme} info: `) console.log(`name is: ${this.firstNAme} and the age is: ${this.age}`) console.log(`Job is: ${job}`) console.log(`Phone is: ${phone}`) console.groupEnd() } } const Tim = { firstNAme: 'Tim', age: 22 } const infoTim = person.logInfo.bind(Tim) infoTim('clown', '100100-10010')