gpt4 book ai didi

javascript - 为什么切换功能无法按预期工作?

转载 作者:行者123 更新时间:2023-12-02 18:48:55 25 4
gpt4 key购买 nike

我对 javascript 非常陌生,我从编写一个小脚本的简单任务开始。我期望通过单击切换按钮来显示字符串...

<!DOCTYPE html>
<html>
<body>


<button onclick="foo()">Foo</button>
<button onclick="toggle()">Toogle</button>
<p id="demo"></p>


<script>
var toggle = false;//set the desired initial value to toggle flag
var x = "";

function toggle() {
alert("ENTERED Toggle");
toggle = !toggle;
x= toggle? "Toggle set to true. " : "";
}

function foo() {`enter code here`
alert("ENTERED Foo");
var y = "Food pressed";
y = x + y;
document.getElementById("demo").innerHTML=y; // display the x value
}
</script>

</body>
</html>

预期:当仅单击 foo 时,会显示警报框,单击“确定”只会显示简单的“Foo 已按下”。应该显示。当单击一次切换,然后单击 foo 时,将显示“Toggle set to true. Foo Pressed”{在此过程中发生两次警报},并且再次按下切换,第二次按下切换标志并按下切换标志并且只有“Foo 被按下”。显示并如下所示......

实际结果:只有 foo click 有效,toggle click 根本不起作用。

有人可以解释一下吗?

最佳答案

你们的名字有冲突。 toggle 函数取代了 toggle 变量。这是因为在 ECMAScript (Javascript) 中,函数可以通过不加括号来传递,也就是说函数是 first-class citizen .

一个例子:

x = alert; //"x" is now the same function as "alert"
x("Hej");

因此,您对 toggle 函数的定义相当于此赋值:

var toggle = function() {
alert("ENTERED Toggle");
toggle = !toggle;
x= toggle? "Toggle set to true. " : "";
}

解决方案是为函数或变量指定另一个名称。

关于javascript - 为什么切换功能无法按预期工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16037230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com