面向对象和基于对象的语言之间的区别

时间:2011-08-05 09:37:26

标签: javascript oop

面向对象和基于对象的编程语言有什么区别? JavaScript是面向对象还是基于?

4 个答案:

答案 0 :(得分:15)

Wikipedia说:

  

在计算机科学中,基于对象的术语有两种不同的含义:

     
      
  • 面向对象编程的某种限制版本,其中一个或多个限制适用:(a)没有隐式继承,(b)没有多态,(c)只有非常简化可用值的子集是对象(通常是GUI组件)。

  •   
  • 基于原型的系统(即基于“原型”对象的系统,不是任何类的实例)。

  •   

Javascript是基于对象的。

答案 1 :(得分:3)

面向对象基于消息传递,不涉及类或继承。

"面向对象" Alan Kay博士创造的劫持者被劫持 C ++,Java和Co,Alan Kay博士清楚地表明OO是消息,而不是 类。 Alan Kay On OO博士 " OOP对我来说只意味着消息传递,本地保留和保护 隐藏状态过程,以及所有事物的极端后期绑定。"

Erlang,LISP,Smalltalk是OO编程语言,而不是基于对象的C ++,Java,c#等。

答案 2 :(得分:0)

面向对象的语言

面向对象的语言没有内置对象。它具有OOP的所有功能。面向对象的语言是C ++,C#,Java等

基于对象的语言

基于对象的语言不支持多态性和继承等OOP的所有功能。它有内置对象,如javascript有window对象。语言是Javascript,VB等。

答案 3 :(得分:0)

我发现此问题的答案有两种版本。

首先,您必须定义什么是面向对象的语言。

  1. English wiki中,您可以发现基于类的语言是面向对象的语言,而基于原型的语言不是面向对象的语言。他们认为,仅一种语言仅使用“对象”是不够的,因此它不是面向对象的语言。
  2. mozilla中,您可以发现基于原型的语言是面向对象的语言。因为他们认为一种语言是否使用“对象”,所以它是一种面向对象的语言。然后他们将面向对象分为两种类型:
      基于类和基于对象的面向对象。
    • 基于对象(或基于原型)的面向对象

我的英语不是很好。如果您是中国人,则可以看到Chinese wiki