扩展抽象类问题-javascript
我需要用javascript扩展一个抽象类。 我买了Javascript的权威指南-O'Reilly js中有一些OOP示例。 我试图执行一个示例来扩展一个抽象类, 但是我收到了“AbstractSet.extend不是一个函数”。 有人能帮我理解这个问题吗? 谢谢 ---萤火虫控制台 AbstractSet.extend不是一个函数扩展抽象类问题-javascript,javascript,oop,abstract,extend,Javascript,Oop,Abstract,Extend,我需要用javascript扩展一个抽象类。 我买了Javascript的权威指南-O'Reilly js中有一些OOP示例。 我试图执行一个示例来扩展一个抽象类, 但是我收到了“AbstractSet.extend不是一个函数”。 有人能帮我理解这个问题吗? 谢谢 ---萤火虫控制台 AbstractSet.extend不是一个函数 equals:函数(即){没有普通的JavaScriptextend方法,因此出现错误 这段代码是直接从书中复制来的吗?作者可能指的是吗?否,在“核心Javasc
equals:函数(即){没有普通的JavaScript
extend
方法,因此出现错误
这段代码是直接从书中复制来的吗?作者可能指的是吗?否,在“核心Javascript”部分:(我认为它们与ecmascript 5有关,我的浏览器(FF 10.0.1)完全兼容ecmascript 5。(如图所示)感谢answare.:-)这是什么,我甚至不。<代码>扩展<代码>当然不是在任何JavaScript实现中,甚至不是ES5。<代码>扩展< /COD>通常由库添加以覆盖原型链(一个JS特性很多被认为是丑陋的;我不,但对每个他自己)用句法糖。
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);
}
}
);