Что делает новая функция (настройки) {...} (jQuery.query || {});значит в javascript? - PullRequest
2 голосов
/ 19 декабря 2011

Пример кода здесь .

Большой кусок кода начинается с

new function(settings) {

и заканчивается

}(jQuery.query || {}); // Pass in jQuery.query as settings object

Что делает этот трюк?

Почему Eclipse находит здесь 2 ошибки? Затмение не любит нового в начале. Могу ли я просто удалить это? Также Eclipse желает ] в конце «завершить NewExpression».

Что это значит? Как написать это с []?

Ответы [ 3 ]

4 голосов
/ 19 декабря 2011

Это создает анонимную функцию и вызывает ее с

(jQuery.query || {})

в качестве параметра.

попробовать

new function(x){alert(x);}("foo");

в клопе.

3 голосов
/ 19 декабря 2011

Это один из способов создания самовызывающейся функции javascript. Это просто функция, которая объявляется и вызывается одним быстрым движением руки.

http://sparecycles.wordpress.com/2008/06/29/advanced-javascript/

На что жалуется Eclipse, не совсем понятно. Синтаксис полностью действителен - возможно, Eclipse не сможет правильно его обработать.

РЕДАКТИРОВАТЬ: Переданный аргумент: (jQuery.query || {}) передает jQuery.query в функцию. Если jQuery.query имеет значение null, false, zero или undefineded (falsey) , вместо него будет передан пустой литерал объекта, избегая нулевой ссылки.

1 голос
/ 19 декабря 2011

Конструкция new function определяет новую функцию.Он работает в основных браузерах, но предпочтительнее использовать немного другой синтаксис.

(function() {
    ...
})();

Здесь мы определяем функцию, а затем немедленно вызываем ее.В вашем коде функции также передается параметр.

Возможно, жалоба Eclipse является ошибкой.

...