面向对象还是基于对象

面向对象: 首先对象是什么,对象指的是所有的事和物都可以称之为对象,中文环境下这个对象很不好理解,在英文中,Object(对象)指的是一切事物的总称。这和面向对象编程的抽象思维有互通之处。对象不是计算机领域凭空造出来的概念,而是顺着人类思维模式产生的一种抽象(面向对象编程也被认为是:更接近人类思维模式的一种编程范式)。 有了对象的定义后,我们就可以描述编程语言中的对象了,在不用的编程语言中,设计者也利用各种不同的语言特性来抽象描述对象,最为成功的是 使用类来描述对象,这种诞生了C++,Java等流行编程语言。无论使用怎样的编程语言,我们都应该去理解对象的本质特征,对象的一些特点: ···对象具有唯一标识性:即使完全相同的两个对象,也并非同一个对象。 ···对象有状态:对象具有状态,同一对象可能处于不同状态之下。 ···对象具有行为:即对象的状态,可能因为它的行为产生变迁。 拿第一个来说对象具有唯一标识性,任何的js对象其实是互不相等的。 ```var o1 = { a: 1 }; var o2 = { a: 1 }; console.log(o1 == o2); // false ``` 两个一模一样的对象,但是打印出来的结果却是 false。 关于对象的第二个和第三个特征状态和行为,不同语言会使用不同的术语来抽象描述它们,比如 C++ 中称它们为成员变量和成员函数,Java 中则称它们为属性和方法。在 JavaScript 中,将状态和行为统一抽象为属性。 JavaScript 中对象独有的特色是:对象具有高度的动态性,这是因为 JavaScript 赋予了使用者在运行时为对象添改状态和行为的能力。 Javascript面向对象符合面向对象的特点,而且还具有自己独特的特点,可以在运行时改变和添加属性。和别的面向对象语言不同的是它们使用描述方式不同,java 使用的是类,而 javascript 使用的是原型。总之就是可以动态的增加属性,重新赋值可以改变属性类型,没那么多规范。