Intenté hacer una calculadora, pero al revisarla en esta etapa, muestra un error de sintaxis.
Por favor necesito ayuda. ¿Cómo puedo corregir esto? Hay una clase de calculadora allí y la representé con la palabra 'nueva'. Esto es JavaScript vainilla. Intenté llamar a la función, pero seguía dándome el error en mi consola. ¿Alguien me podría ayudar por favor?
class calculator { constructor(previousOperandTextElement, currentOperandTextElement) { this.perviousOperandTextElement = previousOperandTextElement this.currentOperandTextElement = currentOperandTextElement this.clear() } clear() { this.currentOperand = '' this.previousOperand = '' this.operation = undefined } delete() { } appendNumber(number) { this.currentOperand = number } chooseOperation(operation) { } compute() { } updateDisplay() { this.currentOperandTextElement.innerText = this.currentOperand; } } const numberButtons = document.querySelectorAll('[data-number]') const operationButtons = document.querySelectorAll('[data-operation]') const equalsButton = document.querySelector('[data-equals]') const deleteButton = document.querySelector('[data-delete]') const allclearButton = document.querySelector('[data-all-clear]') const previousOperandTextElement = document.querySelector('[data-previous-operand]') const currentOperandTextElement = document.querySelector('[data-current-operand]') const calculator = new calculator(previousOperandTextElement, currentOperandTextElement) numberButtons.forEach(button => { button.addEventListener('click', () => { calculator.appendNumber(button.innerText) calculator.updateDisplay() }) })El identificador 'calculadora' ya ha sido declarado' significa que ha usado el nombre 'calculadora' dos veces, en su código: la clase se llama 'calculadora' y la constante para el objeto de la calculadora también es 'calculadora'.
Cambie el nombre de la clase a 'Calculadora':
class Calculator { constructor(previousOperandTextElement, currentOperandTextElement) { this.perviousOperandTextElement = previousOperandTextElement this.currentOperandTextElement = currentOperandTextElement this.clear() } clear() { this.currentOperand = '' this.previousOperand = '' his.operation = undefined } delete() { } appendNumber(number) { this.currentOperand = number } chooseOperation(operation) { } compute() { } updateDisplay() { this.currentOperandTextElement.innerText = this.currentOperand; } } const numberButtons = document.querySelectorAll('[data-number]') const operationButtons = document.querySelectorAll('[data-operation]') const equalsButton = document.querySelector('[data-equals]') const deleteButton = document.querySelector('[data-delete]') const allclearButton = document.querySelector('[data-all-clear]') const previousOperandTextElement = document.querySelector('[data-previous-operand]') const currentOperandTextElement = document.querySelector('[data-current-operand]') // error was here const calculator = new Calculator(previousOperandTextElement, currentOperandTextElement) numberButtons.forEach(button => { button.addEventListener('click', () => { calculator.appendNumber(button.innerText) calculator.updateDisplay() }) })PD: siempre nombre sus clases con la primera letra mayúscula, esa es la convención