Хорошо, это почти точно такой же вопрос, как most recent jslint-tagged question before this one, который также просит о оборонительный ведущих полу- колоны. Не забудьте выполнить поиск внутри своих тегов, прежде чем спрашивать!
При этом мы дадим бесплатный пропуск - в другом вопросе нет принятого ответа, поэтому здесь вы идете. ; ^) (Тем не менее, мы должны закрыть один из них как обман.)
Вот почему Крокфорд говорит, что вторая версия лучше.
От http://javascript.crockford.com/code.html
Когда функция должна быть вызваны немедленно, все выражение вызова должно быть завернуты в круглых скобках, так что очевидно, что значение производятся является результатом функции и не функция .
Чтобы немного расширить, JavaScript не является, как известно, строго типизированным языком. Это не редкость толкать function
в переменную, и, по сути, было бы более распространено толкать функцию в var
, а не на значение от вызываемой немедленно анонимной функции.
var whatAmI = function() { return 5; }; // You're a function!
против
var whatAmI = (function() { return 5;}()); // You're the number 5!
Так что стоит иметь немного синтаксический сахар в вашем коде, чтобы ясно показать, когда вы вызова, а не установив ссылку на функцию.
Не увязывайте тех, кто жалуется, что это трудно. Они правы, и это хорошо!
В проекте достаточно большой, почему у вас есть, чтобы не согласиться с ним? Я никогда не видел, чтобы Крокфорд требовал чего-то, что было бы объективно неправильно. Все правила в JSLint: , возможно, хороших, а стандартизация кода в общих проектах - это очень хорошая вещь. Он учит вам хорошие (! Плохие?) Привычки бесплатно. Стоит играть.
Не любит? Какую ошибку он дает? – Andy
http: // jslinterrors.com/move-the-invocation-in-the-parens-that-содержать-функцию/ –
Резюме ссылки, которую @PaoloMoretti поставил в своем комментарии: '' создатель JSLint - злобный человек, t нравится добавлять в него опции и хочет, чтобы все кодировались так же, как и в тех случаях, когда они действительно не имеют абсолютно никакой разницы. ' ' –
RevanProdigalKnight