次のようなJavaScriptが少しあるとします。
MyCompany.MyProduct = {};
(function () {
"use strict";
MyCompany.MyProduct.doSomethingAmazing = function () {
};
}());
これは、採用するのに問題のないアプローチだと思います...
それはCrockford氏のJavascriptリントを通過するので、私は良いことをしていると思いましたが、Resharper(Visual Studio 2010で実行されている6.1)が私に言ったことに気づきました
意外な表現
最後の行(つまり、このビット:) }());
。
今、私はそこに物議を醸すブラケットの配置があり、多くの人がフォームを好むことを知っていますが、それはResharper})();
をなだめず、 JS Lintを悩ませるので、私はそれを落とします。
それから私は行きました:
MyCompany.MyProduct = {};
!function () {
"use strict";
MyCompany.MyProduct.doSomethingAmazing = function () {
};
}();
これは(とにかくこれによると)同等だと思います。Resharperは幸せそうに見えましたが、今ではJS Lintがおかしくなり、次のように言っています。
式が関数自体ではなく関数の結果であることを読者が理解できるように、関数の即時呼び出しを括弧で囲みます。
だから、私が1つのスタイルを選択する前に(おそらく、両方の争いの当事者が一緒にプレイできないために迷惑になるものです...)Javascriptには、トーチを照らす場所を知っていれば、非常に多くのきちんとした構文上の路地があるので、疑問に思いました:
両方の当事者を幸せに保つために使用できる構文はありますか?