-1

重複の可能性:
JavaScript の自己実行関数の目的は何ですか?

誰かがJSでそれが何を意味するのか説明してもらえますか:

var obj = (function(){ 
   // code
})()

ありがとう

4

2 に答える 2

5

これは、即時インスタンス化関数と呼ばれます。関数を実行し、戻り値を に代入しobjます。それを使用してスコープまたはクラスを作成し、クロージャーを使用してそのスコープ内で特定の変数をプライベートに保つことができます。その件については、 John Resigs のページを参照してください。

したがって、関数が次のようになっているとします。

var obj = (function(n){
  return 2+n;
})(3);

の値はobj5 になります。

于 2012-06-29T08:07:09.843 に答える
5

すぐに実行される無名関数です。その戻り値は に割り当てられobjます。例えば:

var obj = (function () {
    return 10;
}()); //Notice that calling parentheses can go inside or outside the others

console.log(obj); //10

コードが実行されているスコープを乱雑にしないように、新しいスコープを導入するためによく使用されます。

var obj = (function () {
    var something = 10; //Not available outside this anonymous function
    return something;
}());

console.log(obj); //10

これは関数宣言ではなく関数であるため、右中括弧の後にセミコロンが必要であることに注意してください。

于 2012-06-29T08:07:22.340 に答える