Что значит конструкция (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, время: 13:02. |