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

考虑以下javascript:

$(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设置为函数。

simple
setTimeout(private_函数,1000)不带引号也应该有效,不是吗?是的,我给出了两种解决方案;),看第一个。但我也给出了第二种解决方案,以防他需要将一些参数传递给它的回调函数。有时,第一种方法也无法工作,例如,当您希望使用另一个作用域时,
apply
call