Javascript 设置超时而不污染全局命名空间?
考虑以下javascript:Javascript 设置超时而不污染全局命名空间?,javascript,jquery,global-variables,Javascript,Jquery,Global Variables,考虑以下javascript: $(function(){ var private_function = function(){ alert("private_function!"); } setTimeout("private_function();", 1000); }); 这会产生错误“未定义私有函数” 有没有一种方法可以延迟javascript中私有/匿名函数的执行,而不会污染全局名称空间/通过全局模块公开它 谢谢你的建议 $(function(){ v
$(function(){
var private_function = function(){
alert("private_function!");
}
setTimeout("private_function();", 1000);
});
这会产生错误“未定义私有函数”
有没有一种方法可以延迟javascript中私有/匿名函数的执行,而不会污染全局名称空间/通过全局模块公开它
谢谢你的建议
$(function(){
var private_function = function(){
alert("private_function!");
}
setTimeout(private_function, 1000);
});
或
$(function(){
var private_function = function(){
alert("private_function!");
}
setTimeout(function(){
private_function(); // with this method you can also pass some arguments
}, 1000);
});
使用setTimeout(private_函数,1000)
将Timeouthandler设置为函数。simplesetTimeout(private_函数,1000)代码>不带引号也应该有效,不是吗?是的,我给出了两种解决方案;),看第一个。但我也给出了第二种解决方案,以防他需要将一些参数传递给它的回调函数。有时,第一种方法也无法工作,例如,当您希望使用另一个作用域时,apply
或call