假设我有一些看起来像这样的 JavaScript:
MyCompany.MyProduct = {};
(function () {
"use strict";
MyCompany.MyProduct.doSomethingAmazing = function () {
};
}());
我认为这是一种可以采取的方法......
它通过了Crockford 先生的Javascript lint,所以我认为这是一件好事,但后来我注意到Resharper(在 Visual Studio 2010 中运行的 6.1)告诉我
意外的表达
在最后一行(即这一位:)}());
。
现在,我知道那里有一个有争议的支架放置,许多人更喜欢这种形式})();
,但这并不能安抚Resharper,它也让JS Lint很恼火,所以我放弃了。
然后我去了:
MyCompany.MyProduct = {};
!function () {
"use strict";
MyCompany.MyProduct.doSomethingAmazing = function () {
};
}();
我认为这是等效的(无论如何,根据这个),Resharper 似乎很高兴,但现在 JS Lint 吓坏了,告诉我:
将立即函数调用用括号括起来,以帮助读者理解表达式是函数的结果,而不是函数本身。
所以,在我只选择一种风格之前(可能是那种让争吵双方都烦恼的风格,因为如果他们不能一起玩......)我想知道,因为如果你知道在哪里点燃火炬的话,Javascript 有这么多整洁的语法小巷:
有什么可以让双方都满意的语法吗?