我在网上遵循了有关如何使用JavaScript构建计算器的教程。该代码使用for循环遍历计算器的所有按钮,并使用2个函数添加数字并进行计算。这是代码:
for (var i = 0; i < buttons.length; i += 1) {
if (buttons[i].innerHTML === "=") {
buttons[i].addEventListener("click", calculate(i));
}
else {
buttons[i].addEventListener("click", addValue(i));
}
}
function addValue(i) {
return function() {
if (buttons[i].innerHTML === "~" ) {
result.innerHTML += "/";
}
else if (buttons[i].innerHTML === "x") {
result.innerHTML += "*";
}
else {
result.innerHTML += buttons[i].innerHTML;
}
};
}
function calculate(i) {
return function() {
result.innerHTML = eval(result.innerHTML);
};
}
我想问一下为什么要使用2个函数,addValue和计算返回函数?如果我删除退货,该代码将无法正常工作。为什么?
如果删除该return
语句,则addValue
返回undefined
。
addEventListener
需要两个参数,用于运行函数的事件的名称,以及要运行的函数。
如果addValue
返回,undefined
则传递undefined
给addEventListener
而不是函数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句