Javascript 设置间隔可以';t访问变量?
我有一个名为Javascript 设置间隔可以';t访问变量?,javascript,Javascript,我有一个名为showchild(pgid)的JavaScript函数。我已经调用了文档准备中的函数 $(document).ready(function() { var pgid = $('#hiddenuserkey').val(); //alert(pgid); showchild(pgid); setInterval("showchild(pgid)",1000); }); 您正在以最糟糕的方式使用它—传递字符串 请改用以下代码: setInterv
showchild(pgid)
的JavaScript函数。我已经调用了文档准备中的函数
$(document).ready(function()
{
var pgid = $('#hiddenuserkey').val();
//alert(pgid);
showchild(pgid);
setInterval("showchild(pgid)",1000);
});
您正在以最糟糕的方式使用它—传递字符串 请改用以下代码:
setInterval(function() {
showchild(pgid);
}, 1000);
传递字符串时,将在全局上下文中对其求值,而无需访问任何非全局变量。通过传递函数(首选方式),所有可访问的变量都保留在函数的闭包中,因此调用函数时,
pgid
在该函数中定义。您正在以最糟糕的方式使用它-传递字符串
请改用以下代码:
setInterval(function() {
showchild(pgid);
}, 1000);
传递字符串时,将在全局上下文中对其求值,而无需访问任何非全局变量。通过传递函数(首选方式),所有可访问的变量都保留在函数的闭包中,因此调用函数时,
pgid
在该函数中定义。这是因为pgid
是ready
处理程序的本地变量,但字符串showchild(pgid)
在全局范围内进行计算。这就是为什么不应该将字符串传递给setXXXXXX
。这是一个答案,而不是注释-1表示“不工作”。请确保包含适当的诊断信息(将来)。这是因为pgid
是ready
处理程序的本地处理程序,但是字符串“showchild(pgid)”
是在全局范围内计算的。这就是为什么不应该将字符串传递给setXXXXXX
。这是一个答案,而不是注释-1表示“不工作”。请确保包含适当的诊断信息(将来)。