JS学习之面向对象
什么是对象?
在js中,对象的本质是对一组无序的相关变量(属性)以及函数(方法)进行组合的结果,将这些变量及方法进行统一再封装并对封装结果命名.从而叫做对象
对象:属性+方法
万事万物皆是对象,在程序中可以将生活中所有的事物映射成一个对象,已达到程序实现现实生活中的事务.
属性:
主要是对对象的特征描述,在对象中主要通过属性来表示(名词)
方法:
主要是对对象的行为描述,在对象中主要通过方法来表示(动词).
为什么要使用对象?
在记录一个数值时,基本上都是使用变量,保存多个数据值时,可以使用数组.
对于记录数据而言,可以使用数组记录大量数据,但是数组中的数据只能通过索引值进行访问,并不明确每个数据的实际价值,而在开发中基本上每一步都需要明确每个数据的实际价值是什么.而且数据量变的非常庞大时索引也会混乱.
所以对象是一个容器,封装了属性(property)和方法(method).
属性是对象的状态,方法是对象的行为(完成某种任务).比如,我们可以吧动物抽象为(animal)对象,使用"属性"记录具体是哪一种动物,使用"方法"表示动物的某种行为(奔跑,捕猎,休息等等).
创建对象
面向对象编程的第一步,就是要生成对象.前面说过,对象是单个实物的抽象.通常需要一个模板,表示某一类实物的共同特征,然后对象根据这个模板生成.
JavaScript语言使用构造函数(constructor)作为对象的模板.所谓"构造函数",就是专门用来生成实例对象的函数.它就是对象的某班,描述实例对象的基本结构.一个构造函数,可以生成多个实例对象,这些实例对象都有相同的结构.
构造函数就是一个普通的函数,但是有自己的特征和法.
var Vehicle = function () {
this.price = 1000;
};
上面代码中,Vehicle就是构造函数,为了与普通函数区别,构造函数名的第一个字母通常大写.
构造函数的特点有两个
1.函数体内部使用了 this 关键字,代表了所要生成的对象实例.
2.生成对象的时候,必须使用 new 命令.
下一节我们学习this关键字