Pull to refresh

Плагин для jQuery, реализующий наследование

Reading time2 min
Views2.4K
Наверняка, многие разработчики, использующие jQuery, сталкиваются в крупных проектах, использующих ООП, с проблемами наследования. Так как самому недавно пришлось озадачиться подобной проблемой, решил написать плагин для jQuery, помогающий в этом нелегком деле. Некоторые идеи заимствованы из Base2.

Как использовать


$.inherit([base], methods, [statical])

* This source code was highlighted with Source Code Highlighter.

Где:
  • base — базовый тип (если он есть)
  • methods — перекрываемые и новые методы
  • statical — статические свойства и методы

«Магические» методы и свойства


Кроме этого, есть несколько «магических» методов:
  • __constructor — метод, вызываемый при создании экземпляра
  • __base — метод, позволяющий вызвать одноименный метод базового типа
  • this.__self — так изнутри можно получить доступ к статическим свойствам и методам

Пример


// Базовый тип
var A = $.inherit(
  {
    __constructor : function(property) {
      this.property = property;
    },
    getProperty : function() {
      return this.property;
    },
    getStaticProperty : function() {
      return this.__self.getStaticProperty();
    }
  },
  {
    staticProperty : 'static property of A',
    getStaticProperty : function() {
      return this.staticProperty;
    }
  });

// Производный тип от А
var B = $.inherit(
  A,
  {
    getProperty : function() {
      return this.__base() + ' in B';
    }
  },
  {
    staticProperty : 'static property of B',   
  });

var instance = new B('value');
alert(instance.getProperty());
alert(instance.getStaticProperty());
alert(B.staticProperty);

* This source code was highlighted with Source Code Highlighter.
Сам плагин можно скачать отсюда.
Tags:
Hubs:
+5
Comments14

Articles

Change theme settings