gpt4 book ai didi

jquery - 关于 jQuery 的奇怪输出

转载 作者:行者123 更新时间:2023-12-01 06:23:56 26 4
gpt4 key购买 nike

<小时/>

var message = 'Spoon!';
$('#foo').bind('click', function() {
alert(message);
});

message = 'Not in the face!';
$('#bar').bind('click', function() {
alert(message);
});
<小时/>

为什么两条输出信息是一样的:“Not in the face!”;'foo' 闭包中的第一条消息不是指的是 'Spoon!' 吗?为什么不?请有人解释一下。我不明白教程的解释。

最佳答案

这是因为事件处理程序是异步启动的。而您设置的消息值是在第一个线程中完成的。

所以基本上你的程序会读取你的整个代码,将值设置为'Spoon!',然后设置为你设置的最后一个'Not in the face!' 。然后,当您单击任一按钮时,它都会提醒消息“不在脸上!” 的值。

尝试将消息放入函数中,然后您将看到每个消息都有不同的消息。这将按照您的预期工作,因为您还异步设置了该值。

$('#foo').bind('click', function() {
var message = 'Spoon!';
alert(message);
});

$('#bar').bind('click', function() {
var message = 'Not in the face!';
alert(message);
});

关于jquery - 关于 jQuery 的奇怪输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10091436/

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