Каким будет хороший минималистичный метод наследования Javascript?

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

Так что я'ищу способ написатькласса как» наследование в JavaScript, которое имеет следующие требования:

Нет внешних библиотек или объектов, которые могут конфликтовать с внешней библиотекой (что исключает копирование ивставить из внешней библиотеки).Минималистичный - я нене хочу, чтобы код поддержки был больше, чем несколько строк кода, и я неЯ хочу, чтобы разработчики нуждались в большом количестве шаблонов каждый раз, когда они определяют новый класс или методы.Следует учитывать динамическое расширение родительских объектов, чтобы дочерние объекты могли видеть изменения (прототип).Следует учесть конструктор цепочки.Должен учитыватьsuper Тип звонков.Должен все еще чувствовать JavaScript-иш.

Первоначально я пытался работать с простой цепочкой прототипов:

function Shape(x,y) {
  this.x = x;
  this.y = y;

  this.draw = function() {
    throw new Error("Arbitrary shapes cannot be drawn");
  }
}

function Square(x,y,side) {
  this.x = x;
  this.y = y;
  this.side = side;

  this.draw = function() {
    gotoXY(this.x,this.y); lineTo(this.x+this.side, this.y); ...
  }
}
Square.prototype = new Shape();

И это решает требования 1, 2 и 6, но id не разрешает супер вызовы (новые функции переопределяют родительские функции), конструктор, связывающий и динамически расширяющий родительский, не предоставляет новые методы дочернему классу.

Любые предложения будут приветствоваться.

Ответы на вопрос(6)

Ваш ответ на вопрос