3

次の JavaScript を検討してください。

$(function(){
  var private_function = function(){
    alert("private_function!");
  }

  setTimeout("private_function();", 1000);  

});

これにより、「private_function が定義されていません」というエラーが発生します。

グローバル名前空間を汚染したり、グローバルモジュールを介して公開したりせずに、JavaScriptでプライベート/匿名関数の実行を延期する方法はありますか?

提案をありがとう。

4

2 に答える 2

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);  

});
于 2012-04-23T09:26:48.437 に答える
1

setTimeout(private_function, 1000);Timeouthandler を関数に設定するために使用します。

于 2012-04-23T09:28:04.630 に答える