javascript涵盖3个部分
1 ECMAScript 语言的核心,即变量,函数,循环等
2 DOM(文档对象模型),用来访问元素
3 BOM(浏览器对象模型),用来访问浏览器的一些属性
常说的ES6其实就是ECMAScript第六版,从1到6添加了许多新特性,引入了许多新对象和属性
面向对象的具体含义以及这种程序设计风格的主要特征
面向对象程序设计 简称OOP
其中最常用到的概念
1.对象,方法,属性
2.类
3.封装
4.聚合
5.重用于继承
6.多态
具体理解各个部分
对象,就是“事物”(包括人和物)在程序设计语言中的表现形式,生活中的类比总结
1对象往往由名词表示,如person book
2对象拥有方法,方法一般是些动词,如read、run
3对象拥有属性,属性值往往是一些形容词
类呢,其实在javascript中不存在类,对象有时候也叫做实例,比如老鹰是鸟的一个实例,在这里鸟是抽象的类,在javascript中呢,没有类只有原型,原型本身是一种对象,在java c++这种传统的面向对象语言中,这样描述,基于person类创建了一个叫bob的类,而在这种基于原型的面向对象语言中,则要这样描述,将现有的person对象扩展成一个叫做bob的新对象
封装呢,主要阐述对象中所包含的内容,主要由两部分组成
1 相关的数据(用于存储属性)
2 基于这些数据所能做的事(所能调用的方法)
比如
(function(){
})()
这个例子就是一个封装,里面的内容能自动编译,真是神奇啊
封装通过暴露借口或者提供借口,我们不需要关心里面的功能是怎么实现的,只需要知道所操作的接口就行了
其实主要涉及的就是信息隐藏
关于信息隐藏,还有一方面,即方法与属性的可见性 ,在js中,所有属性和方法都是可见的,本来所有人都能看到,但是该语言还是提供了一些隐藏数据的方法,以保护程序的隐秘性
那么聚合,指的其实就是将几个对象合并成一个新对象的过程,反过来呢,当我们有一个大问题的时候,我们就能把大问题分解成很多个易于解决的小问题,各个击破。
继承,通过继承这种方式,我们可以实现对现有代码的重用,继承发生在对象与对象之间,一个对象想要拥有另一个对象的所有属性和方法就可以通过继承的方式,一般来说,继承了另一个对象的属性和方法后,通常会往里加入新的方法,以扩展被继承的老对象。否则两个对象都一模一样还要再定义一遍干什么呢?继承通过扩展原型来实现。
多态,不同对象通过相同的方法调用来实现各自行为的能力,称之为多态。