【发布时间】:2012-10-02 17:26:49
【问题描述】:
原因是,虽然我们可以在 Javascript 中使用伪经典继承,但实际上我们必须实现自己的 extend 或 inherit。
原型继承呢——我认为它确实有这样的特点,如果foo.bar被使用,如果bar不是foo的属性,解释器或编译代码(例如如果使用Google V8) 将沿原型链向上,但没有内置方法使对象b 的隐藏原型属性指向a 作为原型链。我们必须通过定义clone() 函数或Object.create() 来添加它。更重要的是,我想我在纯原型继承代码中看到没有任何构造函数。所以看起来在原型代码中,没有构造函数(构造函数)。但是如果我们使用原型继承,我们实际上必须使用构造函数来实现clone()——这更像是伪经典继承方面。
所以看起来原来的 Javascript 实际上既不是伪经典也不是原型继承?根据this Wikipedia article,我读到它需要在 10 天内上市,否则市场上会出现更糟糕的情况。但我也有些纳闷,为什么在 1995 年 Javascript 出现后的 1 年或 2 年,至少 Netscape 版本的 Javascript 还没有添加 extend 和 Object.create() 方法?
本题旨在理解和澄清 Javascript 的伪经典和原型部分中的一些概念。是真的吗 - 原始 Javascript 本身不支持伪经典或原型继承?
【问题讨论】:
标签: javascript