这是我第一次问与代码相关的问题。
我遇到的问题如下:我正在尝试使用纯 JavaScript 构建一个计算器。我创建了加法、减法等函数,还创建了一个名为 opera() 的函数,它接受三个参数:运算和要运算的两个数字。
示例:
function add(num1, num2) {
return num1 + num2;
}
function subtract(num1, num2) {
return num1 - num2;
}
function operate(operation, num1, num2) {
return operation(num1, num2);
}
Operate() 工作正常,但问题是我尝试用 addEventListener 调用它,但它不起作用。
在我将数字和操作存储在全局变量中之后(假设我在 operator 变量中有 add,并且 12 和 8 作为 num1 和 num2),我试图这样做:
equalButton.addEventListener('click', function (e) {
const result = operate(operator, num1, num2);
console.log(result);
});
但是它说 Uncaught TypeError: operation is not a function 并且它指向函数 opera()。
我似乎看不出问题是什么,我猜这会很简单,但我的头脑不允许我解决问题所在。
当您注意到操作函数时,您从未创建过操作函数,因此程序不知道它,因此当您调用操作函数时,您应该调用基于作为参数传递的加法和减法函数的运算符,因此它应该如下所示:
function operate(operation, num1, num2) {
if(operation === '+')
return add(num1,num2);
else
return subtract(num1,num2);
}
请注意,这不是算术运算的有效解决方案,似乎您是初学者,尝试先实现您正在做的事情,然后再改进它。最好创建一个函数并在 switch case 或 if 条件中传递运算符并相应地执行操作:)