首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的Javascript对象继承了什么?

我的Javascript对象继承了什么?
EN

Stack Overflow用户
提问于 2013-12-05 23:45:25
回答 4查看 107关注 0票数 0

如果我有一个函数对象:

代码语言:javascript
复制
function Calculator()
{
// some code
}

然后我实例化了:

代码语言:javascript
复制
var calc=new Calculator();

这么说对吗?我的履历:

  1. 是Calculator对象(并从对象对象继承)吗?
  2. 从Calculator对象继承(然后从对象对象继承)?

谢谢你澄清,干杯,

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-12-05 23:49:43

每个变量都是Object,因此具有Object的方法和属性。但是,从技术上讲,JavaScript中没有真正的继承,因为它是一种原型语言,而不是经典语言。但是,因为所有东西都是一个对象,而且一切都是可变的,所以您可以通过将一个对象的属性分配给另一个对象来模拟继承。请参阅jQuery的extend方法或CoffeeScript的类扩展。

但是,要回答你的问题:

  1. 是的,calcCalculator的一个实例,意味着它的原型是Calculator
  2. 不,见上文
票数 4
EN

Stack Overflow用户

发布于 2013-12-05 23:48:02

嗯..。我的理解是,它是一个Calculator对象,但是继承并不是一个公平的术语。

它是Calculator对象的一个实例,它反过来又是一个对象的实例。但是,由于它们不是传统上人们所想象的类,所以“继承”一词在技术上是不正确的。

票数 2
EN

Stack Overflow用户

发布于 2013-12-06 00:00:30

JavaScript中的所有对象都从Object类型“继承”。我将“继承”这个词放在引号中,因为它不是古典继承,而是原型继承,因为JavaScript是一种基于原型的语言。

请阅读更多关于它的这里 (认真地说,除非您了解原型,否则这是不完全有意义的)。

现在,对您的问题的简单回答是,new Calculator()创建Calculator的一个实例,该实例继承自Object。所以第一更接近。数字2是错误的,因为计算器对象不从自身继承。这是一段is-a关系。

现在,实际上还有一个部分:函数类型。实际上,我们的“继承”在古典术语中如下所示:

Calculator <- Function <- Object (<-表示inherits from)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20413185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档