расширить абстрактную проблему класса - JavaScript - PullRequest
0 голосов
/ 12 февраля 2012

Мне нужно расширить абстрактный класс в JavaScript. Я купил Javascript «Полное руководство» - О'Рейли Есть несколько примеров ООП в JS. Я попытался выполнить один из примеров для расширения абстрактного класса, но я получаю «AbstractSet.extend не является функцией». Может ли кто-нибудь помочь мне понять проблему? Спасибо

function abstractmethod() { throw new Error("abstract method"); }

function AbstractSet() { throw new Error("Can't instantiate abstract classes");}
AbstractSet.prototype.contains = abstractmethod;

var NotSet = AbstractSet.extend(
    function NotSet(set) { this.set = set; },
    {
        contains: function(x) { return !this.set.contains(x); },
        toString: function(x) { return "~" + this.set.toString(); },
        equals: function(that) {
            return that instanceof NotSet && this.set.equals(that.set);
        }
    }
);

--- Консоль Firebug AbstractSet.extend не является функцией равно: функция (та) {

1 Ответ

1 голос
/ 12 февраля 2012

Нет ванильного метода JavaScript extend, следовательно, ошибка.

Копируется ли этот код непосредственно из книги?Может ли автор ссылаться на метод расширения jQuery ?

...