Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.02.2012, 14:20
Кандидат Javascript-наук
Отправить личное сообщение для iNfantry Посмотреть профиль Найти все сообщения от iNfantry
 
Регистрация: 29.10.2011
Сообщений: 132

Что значит конструкция (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);



Впервые вижу данную конструкцию, и чтобы понять в чем проблема полагаю надо получить ответ на этот простой вопрос.
Ответить с цитированием
  #2 (permalink)  
Старый 01.02.2012, 14:30
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

создаёт функцию, принимающую три аргумента, возвращает её и отдаёт на исполнение, передавая три аргумента их двух.

данный код эквивалентен этому :

(function(window,document, undefined){})(window, document);
// ====>
function func(window, document, undefined){  };

func(window, document);


в функции первый аргумент равен window, второй - document, третий - типу undefined.

делается это для замыкания и для укорачивания имён window,document,undefined при сжатии скрипта.
Ответить с цитированием
  #3 (permalink)  
Старый 01.02.2012, 15:07
Кандидат Javascript-наук
Отправить личное сообщение для iNfantry Посмотреть профиль Найти все сообщения от iNfantry
 
Регистрация: 29.10.2011
Сообщений: 132

Понятно, а нет ли способа в пространство имён запихнуть компонент если он в таком виде? Почитал про то как делаются пространства имен в ЖС, но пока не могу сообразить как сделать...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Развитие стандарта HTML Paguo-86PK Элементы интерфейса 104 14.12.2015 21:58
Zend и Pear для нуба mycoding Серверные языки и технологии 52 13.12.2010 18:32
Что за конструкция? (из jQuery) Yojik Общие вопросы Javascript 6 22.08.2010 15:46
Javascript quiz · Perfection kills Octane Оффтопик 49 16.02.2010 12:46
Помогите исправить скрипт по поиску в базе данных dok_sj2 Internet Explorer 2 29.06.2009 20:04