js基础进阶2-1 面向对象(类与对象介绍)
来源:互联网 发布:电脑钢琴学习软件 编辑:程序博客网 时间:2024/05/29 13:42
面向对象语言的要求:
一种面向对象语言需要向开发者提供四种基本能力:
- 封装 - 把相关的信息(无论数据或方法)存储在对象中的能力
- 聚集 - 把一个对象存储在另一个对象内的能力
- 继承 - 由另一个类(或多个类)得来类的属性和方法的能力
- 多态 - 编写能以多种方法运行的函数或方法的能力
ECMAScript 支持这些要求,因此可被是看做面向对象的。
同时,面向对象的程序设计需要遵循以下5大基本原则:
- 单一职责原则(SRP)
- 开放封闭原则(OCP)
- 里氏替换原则(LSP)
- 依赖倒置原则(DIP)
- 接口隔离原则(ISP)
要完成一个优秀的程序设计,需要遵循面向对象设计的基本原则,也需要了解各种各样的设计模式。
类
从传统意义上来说,ECMAScript 并不真正具有类。事实上,除了说明不存在类,在 ECMA-262 中根本没有出现“类”这个词。ECMAScript中的一切皆对象,ECMAScript 定义了“对象定义”,逻辑上等价于其他程序设计语言中的类。js中的类都是由函数构造实现。
每个对象都由类定义,可以把类看做对象的配方。类不仅要定义对象的接口(interface)(开发者访问的属性和方法),还要定义对象的内部工作(使属性和方法发挥作用的代码)。
对象
ECMAScript中的一切皆是对象,且所有对象都由本地对象Object继承而来,故对象中的所有属性和方法都会出现在其他对象中,所以理解了 Object 对象,就可以更好地理解其他对象。
在 ECMAScript 中,对象由特性(attribute)构成,特性可以是原始值,也可以是引用值。如果特性存放的是函数,它将被看作对象的方法(method),否则该特性被看作对象的属性(property)。
Object 对象具有下列属性:
constructor
对创建对象的函数的引用(指针)。对于 Object 对象,该指针指向原始的 Object() 函数。
Prototype
对该对象的对象原型的引用。对于所有的对象,它默认返回 Object 对象的一个实例。
Object 对象还具有几个方法:
hasOwnProperty(property)
判断对象是否有某个特定的属性。必须用字符串指定该属性。(例如,o.hasOwnProperty(“name”))
IsPrototypeOf(object)
判断该对象是否为另一个对象的原型。
PropertyIsEnumerable
判断给定的属性是否可以用 for…in 语句进行枚举。
ToString()
返回对象的原始字符串表示。对于 Object 对象,ECMA-262 没有定义这个值,所以不同的 ECMAScript 实现具有不同的值。
ValueOf()
返回最适合该对象的原始值。对于许多对象,该方法返回的值都与 ToString() 的返回值相同。
注意:特别强调,constructor与Prototype及其重要,需要理解清楚。
实例
程序使用类创建对象时,生成的对象叫作类的实例(instance)。由类创建对象实例的过程叫做实例化(instantiation)。
实例化对象的过程可以理解为,由工厂产出产品的过程,即类产出实例对象。
- js基础进阶2-1 面向对象(类与对象介绍)
- js基础进阶2-2 面向对象(类与对象的创建与使用)
- js面向对象基础(进阶)
- js基础进阶2-3 面向对象(继承)
- java基础-1-面向对象(1)-概念介绍与类、对象、构造方法
- JavaScript基础----40JS面向对象-JS面向对象(2)
- JavaScript基础----39JS面向对象-JS面向对象(1)
- 3-js面向对象基础 原型链进阶
- JS面向对象基础
- js面向对象基础
- js面向对象基础
- 面向对象基础--类与对象
- java基础-面向对象-类与对象
- JavaScript面向对象学习笔记基础与进阶
- Java基础04 - 面向对象1(类与对象)
- JS与面向对象
- JS与面向对象
- js面向对象方法介绍
- 基于注解的Spring AOP实现demo(测试通知顺序)
- 接口篇(5.2) 06. 修改接口速率 ❀ 飞塔 (Fortinet) 防火墙
- JS 中如何判断 undefined 和 null
- 在线云评测系统日志(七):后台从数据库中取出待评测代码
- 内部类
- js基础进阶2-1 面向对象(类与对象介绍)
- 用CMake 编译Android库
- Android系统启动流程总览
- 带下拉刷新的ScrollView
- Python数据结构
- 敢于java的序列化几点小说明
- 单例模式全面学习
- 实现一个自己的服务器监控器
- WebService学习总结(四)——调用第三方提供的webService服务