Синтаксис JQuery плагин объяснил? - PullRequest
1 голос
/ 28 ноября 2011

Я видел некоторый код плагина в jQuery

один из них - перегрузить метод addClass в jQuery (пример: когда вы добавляете addClass - вызовите myfunction ()).

(function(){

    var originalAddClassMethod = jQuery.fn.addClass;

    jQuery.fn.addClass = function(){
        // Execute the original method.
        originalAddClassMethod.apply( this, arguments );

        // call your function
        // this gets called everytime you use the addClass method
        myfunction();

    }
})();

вещь, которую я не понимаю:

Почему он создал закрытие?

Я мог бы использовать закрытые члены внутри обычного функционала с var, и он все еще был бы видимым только для локальной области видимости ..... так?

Вы можете мне это объяснить?

что он зарабатывает на этом закрытии?

Я бы понял, что если бы он послал знак $ в функцию ... но он не

Ответы [ 2 ]

2 голосов
/ 28 ноября 2011

Если вы используете var вне функции, вы все равно создаете глобальную переменную (потому что это область действия, в которой вы находитесь). Поэтому вам нужно обернуть весь код в функцию, чтобы получить новую область видимости.

Тот факт, что он не использовал функцию, чтобы гарантировать $, указывает на jQuery, но использовал jQuery все время вместо этого, просто означает, что он был каким-то мазохистским и хотел меньше читаемого кода. ;)

2 голосов
/ 28 ноября 2011

Я думаю, что замыкание было добавлено, так что переменная originalAddClassMethod не определена в глобальной области (или родительской области) и является закрытой для плагина.

Вы сказали:

Я мог бы использовать закрытые члены внутри обычного функционала с переменной var, и он все еще был бы видим только для локальной области видимости.

Это именно то, что было сделано здесь: функция является анонимной, но все еще "нормально".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...