Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   присвоение функции $ объекту windows (https://javascript.ru/forum/misc/41991-prisvoenie-funkcii-%24-obektu-windows.html)

amt35 08.10.2013 15:32

присвоение функции $ объекту windows
 
Решил к запросу querySelectorAll подвесить несколько часто используемых функций, залез в учебники javascript, позадавал здесь на форуме вопросы,
в результате получилась следующая конструкция:
(function() {
    function _$(els) {
        this.elements = document.querySelectorAll(els);
        return this;
    }
	
    _$.prototype ={
    size: function() {
      alert('size:'+this.elements.length);
      return this;
    }
    };
    window.$ = function(args) { return new _$(args); }
})();


После этого полез изучать существующие фреймворки и выянил что присвоение функции $ объекту windows делается не так, а как не пойму.
Объясниет пожалуйста как в современных фреймворках делается доступной для вызова в документе функция $?

danik.js 08.10.2013 16:11

Чем тебя твой вариант не устаивает? В других либах может быть иначе потому что к примеру они могут быть расчитаны на другое окружение, где глобальный объект иной, и нет никакого window.
jQuery еще к примеру сохраняет ссылку на старое значение window.$, чтобы в случае чего вернуть все на место по $.noConflict()

amt35 08.10.2013 16:58

Меня немного смущает что никто не использует данную конструкцию, может быть потому что используют более правильные варианты присвоения глобальному объекту?

danik.js 08.10.2013 17:26

Цитата:

Сообщение от amt35
никто не использует данную конструкцию

jQuery:
...
// Expose jQuery to the global object
window.jQuery = window.$ = jQuery;
...


Часовой пояс GMT +3, время: 00:25.