当我将其放入 console.log 时,我的值始终未定义,但每次都会返回一个值。它为什么要这样做?我已经定义了我的 var ,它应该可以工作,但无论如何我总是变得未定义。请帮忙。
Size_Price = 0;
document.addEventListener('click', function () {
// check it's an element we're interested in
if (event.target.classList.contains('pizza')) {
if (document.getElementById("small") == event.target) {
document.getElementById("Choice1").textContent = "Small";
return Size_Price + 5
} else if (document.getElementById("medium") == event.target) {
document.getElementById("Choice1").textContent = "Medium";
return Size_Price + 10
} else if (document.getElementById("large") == event.target) {
document.getElementById("Choice1").textContent = "Large";
return Size_Price + 15
} else {
document.getElementById("Choice1").textContent = "Fatso"
return Size_Price + 18
}}
因此,当您在事件侦听器函数中使用 return 关键字时,它实际上不会将值返回到最初调用事件侦听器的位置。它只是退出事件侦听器函数本身 - 该值不会传递到任何地方。这就是为什么当您尝试记录它时会看到未定义的原因,因为没有任何内容返回到该 console.log 语句。返回值只是在事件侦听器函数中丢失。