JavaScript是什么类型的语言

时间:2010-11-08 01:37:11

标签: javascript oop

我正处于HTML课程的开头,我们的教科书说JavaScript是一种基于对象 - 脚本语言。在我们的测验中,其中一个问题是“JavaScript是一种对象 - 面向脚本语言,无论是对还是错。”我把False放了,因为我的理解是基于对象和面向对象是两回事。我的答案错了。

JavaScript确实是面向对象的语言吗?

感谢您提供的任何澄清!

9 个答案:

答案 0 :(得分:9)

JavaScript使用基于原型的编程,这是一种面向对象的编程。原型是一种通过克隆现有对象而不是基于类的继承来重用行为的方法。它与基于标准类的面向对象编程有很大不同,很少有人愿意学习它以充分利用它。

http://en.wikipedia.org/wiki/Prototype-based_programming是一个有用的参考。

答案 1 :(得分:4)

面向对象的定义有时是主观的。对于某些人来说,任何处理“对象”的语言都是面向对象的。对于其他人来说,整个语言及其构造必须利用对象来计算面向对象(想想SmallTalk或Java)。

在javascript中,您可以编写一个没有对象的脚本,或者可以创建大量面向对象的代码。你是否称之为面向对象,实际上取决于你所遵循的思想流派。

答案 2 :(得分:2)

我认为面向对象不是编程语言的一个特性,它是代码的一个特性。代码不会增长面向对象,基于原型或功能,因为它是用特定语言编写的,只有在作者使用该样式时才能获得这样的质量。

当然,将语言称为面向对象的语言是有意义的,因为该语言是专门为该范例设计的,但JavaScript适用于大量不同的范例,所以你真的不能贴上它。

答案 3 :(得分:1)

我相信这个答案已在其他地方得到解答....对象 - 基于和对象 - 导向是相同的,可以互换使用。术语实际上没有区别 - 有些人更喜欢一个而不是另一个。

要回答您的问题,是的,Javascript是对象 - 导向或对象 - 基于

答案 4 :(得分:1)

Javascript是ECMAScript的超集,ECMAScript是一种多范式(功能,程序),基于原型,功能强大,命令式的脚本语言,具有泛/弱/动态类型,受Perl,C,Python,Java的影响,方案。

ECMAScript由Brendan Eich创建。资料来源:http://en.wikipedia.org/wiki/ECMAScript

它采用ifelse以及for等C构造,但也有来自Scheme的closureslambdas,以及{{1来自Self的继承,因此它可以以OO方式使用。

答案 5 :(得分:0)

基于对象,面向对象,基本上是一回事。我的印象是,面向对象比基于对象更严格。

基于对象意味着该语言使用封装“对象”内的状态和操作的想法。

面向对象意味着该语言是为对象编程而设计的。

差异很小。请参阅object-based languageobject-oriented programming上的维基百科文章,以便更好地了解差异。

答案 6 :(得分:0)

术语面向对象编程(OOP)通常没有很好地定义。请参阅Jonathan Rees关于OO的说明:Rees on OO。 Javascript有一个基于名为 prototypes 的概念的OO模型。基于原型的模型与Java或C ++中使用的模型不同,但它肯定属于基于OOP的语言的总体范围。

也许使用“基于对象”这个术语来强调这个关于javascript的事实。它使用对象,但与Java或C ++(或C#)不同。

答案 7 :(得分:0)

面向对象的基础知识存在,但其结构与其他更常见的面向对象语言(如C#和Java)不同。您可以创建对象构造函数和方法,以及访问和检索对象属性。 JavaScript被设计为完全 面向对象的语言从一开始就受到Perl和Python的影响,因此也受到当前程序化习语的影响。

javascript中这种面向对象的表示法有什么问题?

function Class( name, teacher ) {
  this.name = name;
  this.teacher = teacher;
}

答案 8 :(得分:0)

如果您的测验既未定义“面向对象”也未定义“脚本语言”,我无法看到您如何回答这个问题。

相关问题