Страницы

Поиск по вопросам

пятница, 24 января 2020 г.

Не получается вызвать функции, которые лежат внутри функции

#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

Комментариев нет:

Отправить комментарий