Привет, всем пытаюсь разораться внутренности jQuery и написать свой мини framework, чтобы прокачаться) Везде пишут, что объект создают через объектный литерал или через функцию-конструктор. А тут увидел такое, что мой мозг сломался) Если не трудно объясните, и можно ли переписать на нормальный стиль, тоесть есть функция конструктор с одним именем и объект с другим. Но при этом, чтоб была не obj.$().method(); а $().method(). Как в jQuery)
И можете скинуть заготовку другого framevork-а где используют такой метод как описал в верху.
(function() {
var sdv = function(elem) {
return new sdv.foo.init(elem);
};
sdv.foo = {
init: function(elem) {
elem = typeof elem == 'string' ? document.getElementById(elem) : elem;
//this[0] = elem // цепляем элемент к объекту
return elem;
},
getNodeName: function() { // новый метод
// возвращает имя ноды найденного объекта в верхнем регистре
return this[0].nodeName.toUpperCase();
}
};
sdv.foo.init.prototype = sdv.foo;
window.sdv = sdv;
})();
sdv('el').className = "class";