我不断在控制台中收到“未定义”的返回值,但已经明确返回了我的值

问题描述 投票:0回答:1

当我将其放入 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
        }}
    
javascript if-statement undefined
1个回答
0
投票

因此,当您在事件侦听器函数中使用 return 关键字时,它实际上不会将值返回到最初调用事件侦听器的位置。它只是退出事件侦听器函数本身 - 该值不会传递到任何地方。这就是为什么当您尝试记录它时会看到未定义的原因,因为没有任何内容返回到该 console.log 语句。返回值只是在事件侦听器函数中丢失。

© www.soinside.com 2019 - 2024. All rights reserved.