【发布时间】:2015-12-18 07:50:19
【问题描述】:
鉴于以下脚本,我预计第一次打开对话框时,var2 将在 open 回调之后立即未定义,但第二次将设置为 123。并非如此,它总是不明确的。为什么?
然后我取消注释var2=111; 没有变化??? JavaScript 不是线性执行的吗?显然不完全,因为它以某种方式“知道”var2 将在此回调中本地定义。我的解释正确吗?
然后我将var var2 = 123; 更改为var2 = 123;,一切正常。
http://jsfiddle.net/q9904tzn/1/
var var1=321;
// var2=111;
var dialog = $('#dialog').dialog({
autoOpen: false,
open: function (event, ui) {
console.log(var1, var2);
var var2 = 123;
},
});
$('#open').click(function () {
dialog.dialog('open');
});
<div id="dialog"></div>
<button id="open">Open</button>
【问题讨论】:
标签: javascript variables callback namespaces closures