这个JavaScript程序的输出是什么?

这个JavaScript程序的输出是什么?,javascript,Javascript,为什么两个id的输出都是“不在脸上” var message = "Spoon!"; $( "#foo" ).bind( "click", function() { console.log( message ); }); message = "Not in the face!"; $( "#bar" ).bind( "click", function() { console.log( message ); }); 因为在执行单击

为什么两个id的输出都是“不在脸上”

 var message = "Spoon!";
    $( "#foo" ).bind( "click", function() {
      console.log( message );
    });
    message = "Not in the face!";
    $( "#bar" ).bind( "click", function() {
      console.log( message );
    });

因为在执行单击处理程序时,您的(全局)
消息
已经被重新定义为
不在脸上


消息的定义和重新定义都发生在您第一次单击之前。

您所做的只是为“message”变量设置一个新值。单击事件激发时,将显示最新的值。尝试为“Not in the face!”设置不同的变量。消息位于click处理程序函数的全局范围内。