Показать сообщение отдельно
  #1 (permalink)  
Старый 18.05.2013, 13:28
Аспирант
Отправить личное сообщение для Petja Посмотреть профиль Найти все сообщения от Petja
 
Регистрация: 13.03.2011
Сообщений: 57

Подскажите по ООП
Разбирал скрипт, не понял как он работает.

Такой код:
(
    function(root, factory) {

        // Проверяет переменные, откуда эти переменные тут взялись?
        
        /* CommonJS */
        if (typeof exports == 'object')  module.exports = factory()

        /* AMD module */
        else if (typeof define == 'function' && define.amd) define(factory)

        /* Browser global */
        else root.Spinner = factory()
    }
    
    
    (this, function() {
        
        // Тут основной код
        // .......
        
        // Тут еще идет функция, которая вызывается
        /** The constructor */
        function Spinner(o) {
            if (typeof this == 'undefined') return new Spinner(o)
            this.opts = merge(o || {}, Spinner.defaults, defaults)
        }
    })

)

// Далее инициализируется это все следующим кодом:

var spinner = new Spinner(opts).spin(target);


Круглые скобки означают выполнить функцию: function(root, factory)
Но не понятно откуда у этой функции появляются переменные: root, factory, exports и прочие?

Далее идет (this, function() {}) подскажите, что это означает? Вызов безымянной функции, а что такое this в данном случае?

Подскажите, пожалуйста как это работает? Заранее благодарю!
Ответить с цитированием