2016-09-25 10 views
0

jslintはthisが好きではありません。jslintを渡してグローバル変数をIIFEに渡すにはどうしたらいいですか?

}(this)); 

しかし、クライアントとサーバーの両方で実行されるIIFEにグローバル変数を渡す方法です。

どうすれば変更できますか?

オプションを設定せずにjslintを渡したいとします。

+0

行の最後に '// jshint ignore:line'を追加するだけですか? – ivarni

+0

[better linter](http://eslint.org)を検索してください。 –

答えて

1

それはフープのかなりの数によってジャンプが必要ですが、あなたは、この関数を定義することができ、JSLintを通過すると、グローバルオブジェクトへの参照を返します。この関数自体にはないこと

function getGlobal() { 
    // just creating a function here so that we can get at the Function constructor 
    // via noop.constructor 
    var noop = function() { 
     // dummy statements so the linter doesn't complain about an 
     // empty block or unused variables 
     var a = null; 
     return a; 
    }; 

    return noop.constructor("return this")(); 
} 

必要グローバルスコープで定義されるべきである。それを定義してIIFE内で呼び出すことができます。

+0

私が偶然受ける「エラー」の背後にある推論を知っていますか? –

+0

@mikeyballsダグラス・クロフォードは、予測できないこととセキュリティホールを暴露する可能性があるため、「this」の使用を躊躇しています。彼は彼の話しの少なくとも1つ、おそらくもっと話している。私はオフハントを見つけることができませんでしたが、ここでは 'this'を避ける理由について話している人がいます:https://nemisj.com/js-without-new-and-this/ – JLRishe

+0

JavaScriptプログラミングのスタイルがいくつかあります'this'を全く使わないでください。 –

関連する問題