1. ホーム
  2. javascript

[解決済み] JavaScriptコード実行の不器用な方法 [重複]。

2022-08-23 16:49:52

質問

Googleの チュートリアルでは、FlaskアプリケーションでGoogle+のサインインを実装するために のチュートリアルで、開発者が JavaScript コードの実行にしばしば厄介な方法を使用していることを発見しました。

を実行する代わりに

var a = foo(bar);

こんなのがあるんですね。

var a = (function() {
  return foo(bar);
})();

変なやり方をする理由は何ですか?

どのように解決するのですか?

これは悪い例です。次のように考えてみてください。

var a = (function(){
    var ret = {};
    ret.test = "123";
    function imPrivate() { /* ... */ }
    ret.public = function() { imPrivate(); }
    return ret;
})();

a は変数 test と関数 public を含みますが、imPrivate にはアクセスできません。これはpublicとprivateの変数を扱う一般的な方法です。

参照 なぜこの関数は括弧でくくられ、その後に括弧が続くのですか? を参照してください。