Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
扩展抽象类问题-javascript_Javascript_Oop_Abstract_Extend - Fatal编程技术网

扩展抽象类问题-javascript

扩展抽象类问题-javascript,javascript,oop,abstract,extend,Javascript,Oop,Abstract,Extend,我需要用javascript扩展一个抽象类。 我买了Javascript的权威指南-O'Reilly js中有一些OOP示例。 我试图执行一个示例来扩展一个抽象类, 但是我收到了“AbstractSet.extend不是一个函数”。 有人能帮我理解这个问题吗? 谢谢 ---萤火虫控制台 AbstractSet.extend不是一个函数 equals:函数(即){没有普通的JavaScriptextend方法,因此出现错误 这段代码是直接从书中复制来的吗?作者可能指的是吗?否,在“核心Javasc

我需要用javascript扩展一个抽象类。 我买了Javascript的权威指南-O'Reilly js中有一些OOP示例。 我试图执行一个示例来扩展一个抽象类, 但是我收到了“AbstractSet.extend不是一个函数”。 有人能帮我理解这个问题吗? 谢谢

---萤火虫控制台 AbstractSet.extend不是一个函数
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);
        }
    }
);