#javascript #jquery #framework
Решил для себя понять простой принцип работы jQuery и столкнулся с проблемой. При попытке организации упрощенной версии библиотеки у меня не получается вызвать функции, которые лежат внутри функции. Пример кода: var jQ = function(el) { this.el = document.getElementById(el); } jQ.prototype.html = function(text){ this.el.innerHTML = text; return this; } jQ.prototype.css = function(key, value){ this.el.style[key] = value; return this; } // Использование jQ('bar').html('test');
Ответы
Ответ 1
function extend(Child, Parent) { var F = function() { } F.prototype = Parent.prototype Child.prototype = new F() Child.prototype.constructor = Child Child.superclass = Parent.prototype } // создали базовый класс var parent = function() {}; // создали класс // и сделали его потомком базового var jQ = function(el) { this.el = document.getElementById(el); } extend(jQ, parent); // добавили в класс parent методы и свойства parent.prototype.html = function(text){ this.el.innerHTML = text; return this; }; parent.prototype.css = function(key, value){ this.el.style[key] = value; return this; }; // Использование var element = new jQ('bar'); element.html('test'); Более подробно про наследование вы можете почитать: https://learn.javascript.ru/class-inheritance http://javascript.ru/tutorial/object/inheritance
Комментариев нет:
Отправить комментарий