我通过JSLint运行了一个脚本,它选择了一个带括号放置的特定问题。
我写过:
(function(){})();
建议使用:
(function(){}());
我很好奇这个特定更改修复了什么错误或问题。我认为,因为JSLint认为它是一个问题,必须成为某人的问题。
扩展表格:
(
function (p) {
...code...
}
)(param); //parameters after the parens
-vs -
(
function (p) {
...code...
}(param) //parameters within the parens
);
答案 0 :(得分:5)
JSLint尝试修复的特定问题与缺少关闭;
有关,这可能导致将函数解释为参数的错误:
(function A( arg ){
// stuff
})
(function B(){
...
});
完全有效,B
作为A
传递给arg
。然而,这通常不是预期的情况,因为这些通常意味着是自动执行的并且忘记了尾随()
。建议的语法可以消除您可能意外忘记按预期执行功能的任何混淆。
对于它的价值,我几乎总是使用第一种语法;习惯。
答案 1 :(得分:0)
根据Crockford在http://www.yuiblog.com/crockford/(不记得哪个视频,但我认为它是开头的),它是纯粹的样式,以帮助使其更容易阅读,并与错误或问题无关。
修改强>
我认为这是第三幕:功能终极