扩展抽象类问题 - javascript

时间:2012-02-11 22:41:50

标签: javascript oop abstract extend

我需要在javascript中扩展一个抽象类。 我已经购买了Javascript The Definitive Guide - O'Reilly 在js中有一些OOP的例子。 我试图执行一个示例来扩展一个抽象类, 但我收到“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不是一个函数 equals:function(that){

1 个答案:

答案 0 :(得分:1)

没有vanilla JavaScript extend方法,因此出错。

这段代码是直接从书中复制的吗?作者可以参考jQuery's extend method吗?