Что значит конструкция (function(){ ... })
Всем привет, вопрос наверно совсем нубский, но что поделать.
Возникла проблема, конфликт двух компонентов, один просто на JS а другой JQuery. Проблема в первом компоненте, наверное многие узнают его, вот так он выглядит //fgnass.github.com/spin.js#v1.2.1 (function(window, document, undefined) { /** * Copyright (c) 2011 Felix Gnass [fgnass at neteye dot de] * Licensed under the MIT license */ var prefixes = ['webkit', 'Moz', 'ms', 'O'], /* Vendor prefixes */ animations = {}, /* Animation rules keyed by their name */ useCssAnimations; /** * Utility function to create elements. If no tag name is given, * a DIV is created. Optionally properties can be passed. */ ...//остальной код })(window, document); Впервые вижу данную конструкцию, и чтобы понять в чем проблема полагаю надо получить ответ на этот простой вопрос. :-? |
создаёт функцию, принимающую три аргумента, возвращает её и отдаёт на исполнение, передавая три аргумента их двух.
данный код эквивалентен этому : (function(window,document, undefined){})(window, document); // ====> function func(window, document, undefined){ }; func(window, document); в функции первый аргумент равен window, второй - document, третий - типу undefined. делается это для замыкания и для укорачивания имён window,document,undefined при сжатии скрипта. |
Понятно, а нет ли способа в пространство имён запихнуть компонент если он в таком виде? Почитал про то как делаются пространства имен в ЖС, но пока не могу сообразить как сделать...
|
Часовой пояс GMT +3, время: 14:43. |