考虑以下javascript:
$(function(){
var private_function = function(){
alert("private_function!");
}
setTimeout("private_function();", 1000);
});
这会产生错误“private_function not defined”。
有没有办法在javascript中推迟执行私有/匿名函数而不会污染全局命名空间/通过全局模块公开它?
感谢您的任何建议。
答案 0 :(得分:7)
$(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);
});
答案 1 :(得分:1)
使用setTimeout(private_function, 1000);
将Timeouthandler设置为函数。