Estoy creando un objeto en JavaScript que contiene información del empleado (nombre, tarifa, horas, salario bruto). Para calcular el bruto, necesito multiplicar las horas por la tarifa. Mi maestro dice que debería poder hacerlo dentro de mi objeto, pero no funciona. Aquí está mi código:
const emp1 = { name: "John Doe", rate: 13.25, hours: 20.25, gross: rate * hours };En javascript puede definir funciones (métodos) en un objeto y llamarlos cuando lo necesite :)
Tenga en cuenta la sintaxis del método y el uso de 'esto' para referirse a las propiedades del objeto en sí.
var emp1 = { name: "John Doe", rate: 13.25, hours: 20.25, gross: function () { return this.rate*this.hours } }; console.log(emp1.gross())Otra forma era usar la sintaxis get ...
const emp1 = { name: "John Doe", rate: 13.25, hours: 20.25, get gross () { return this.rate * this.hours; }, }; console.log('emp1.gross ...', emp1.gross);Por lo tanto, la idea de causa es la misma que sugirió James McGlone , uno simplemente está libre de omitir el operador de llamada al acceder al valor de esta propiedad (calculada).
Ambas soluciones son igualmente válidas, uno simplemente no sabe cuál complacerá al maestro.
Primero debe declarar las variables fuera del objeto
var rates = 13.25 var hours = 20.25 var emp1 = { name : "John Doe", rates, hours, gross: rates * hours }