1.面向对象
面向对象是一种编程思想,在程序里面用对象来描述现实中一个具体的事务。对象中封装了一个事务的属性和功能。在我们开始写程序前,都要先用对象描述好要操作的事务的属性和功能,在按照要求使用对象的功能和访问对象的属性。
面向对象语言的要求:
一种面向对象的语言需要向开发者提供四种基本能力:
1.封装:把相关的信息(无论数据或方法)存储在对象中的能力。
2.聚集:把一个对象存储在另一个对象内的能力
3.继承:有另一个类(或多个类)得来类的属性和方法的能力
4.多态:编写能以多种方法运行的函数或方法的能力
ECMAScript支持这些要求,因此可被看做面向对象的。
对象是js的基本数据类型。对象是一种复合值。他将很多值(原始值或者其他对象)聚集在一起,可以通过名字访问这些值。对象也可以看做是属性无序的集合,每个属性都是一名/值对。属性名是字符串,因此我们可以把对象看成是从字符串到值得映射。对象不仅仅是字符串到值得映射,除了可以保持自有的属性,js对象还可以从原型对象中继承属性。对象的方法通常是继承的属性。
对象常见的用法是创建、设置、查找、删除、检测和枚举他它的属性。
2.创建对象:
可以通过对象的直接量、new关键字和Object.create()函数来创建对象。
2.1对象直接量:
创建对象最简单的方式就是使用对象直接量。
var obj = {
属性名:属性值,
属性名:属性值,......
方法名:function(){}......
}
访问对象属性和赋值:
this关键字:this所指向的就是引用正在调用函数对象的关键字。对象方法中不加this的变量,默认只在作用域中查找,不会到对象中查找属性。只有对象的方法要访问自己的属性,必须用过this.属性名。
2.2用new来创建对象:
var obj = new Object();//创建一个空对象。new可以省略
obj.属性名 = 属性值
obj.属性名 = 属性值
obj.方法名 = function(){...}
2.3构造函数创建对象:
构造函数:专门用来描述一类对象统一结构的函数(就是一类事务的共有属性和方法)。
构造函数与其他函数唯一的区别在于调用方式不同。任何函数只要通过new来调用就可以作为构造函数,它是用来创建特定类型的对象。一般在我们需要创建多个相同结构的对象时,都要先定义统一的构造函数,在使用构造函数反复创建对象。
2.4通过Object.create()来创建对象
Object.create()方法是ECMAScript 5中新增的方法,这个方法用于创建一个新对象。被创建的对象继承另一个对象的原型,在创建新对象时可以指定一些属性。
语法:Object.create(proto[,propertiesObject])
proto:对象,要继承的原型
propertiesObject:对象,可选参数,为新创建的对象指定属性对象。
注意:使用Object.create()方法创建对象时,如果不是继承一个原有的对象,而是创建一个全新的对象,就要把proto设置为null。