Tengo una duda sobre el siguiente código, que arroja un error como error de sintaxis, pero la guía que seguí dice que la sintaxis es correcta. No sé qué hacer, no entendí, por favor ayuda.
aquí está el enlace del código:
const car = { maker: 'Ford', model: 'Fiesta', drive() { console.log(`Driving a ${this.maker} ${this.model} car!`) } } car.drive() // the same above code can be written as: const bus = { maker: 'Ford', model: 'Bussie', drive: function() { console.log(`Driving a ${this.maker} ${this.model} bus!`) } } bus.drive() // the same code above can be written in this way: const truck = { maker: 'Tata', model: 'Truckie', truck.drive = function() { console.log(`Driving a ${this.maker} ${this.model} truck!`) } } truck.drive() // Now, let us see how the arror function works: const bike = { maker: 'Honda', model: 'Unicorn', drive: () => { console.log(`Driving a ${this.maker} ${this.model} bike!`) } } bike.drive()Error:
SyntaxError: Unexpected token '.' at line: truck.drive = function() {Probablemente hayas leído mal. El código equivalente sería:
// the same code above can be written in this way: const truck = { maker: 'Tata', model: 'Truckie' } truck.drive = function() { console.log(`Driving a ${this.maker} ${this.model} truck!`) } La asignación a truck.drive es posterior a la inicialización de truck , no dentro del objeto literal.
Primero, no puede poner asignaciones dentro de un objeto literal, solo declaraciones de propiedades. En segundo lugar, no puede hacer referencia a la variable que se está definiendo hasta después de que se haya completado la asignación.