1、什么是面向对象?
js中一切都是对象!所有对象的底层都类似hash数组。
在程序中都是用一个对象来描述现实中一个具体的东西,所谓面向对象就是类的实例化。
现实中的一个东西都包含属性和功能:
属性:描述一个东西特点的变量,一个值
功能:东西可以执行的操作
什么是对象:封装多个数据和方法的存储空间
什么是自定义对象:封装现实中一个东西的属性和功能的存储空间。
现实中东西的属性会成为对象中的属性变量。
现实中东西的功能,会成为对象中的方法(函数)
创建对象的方式:
1. 对象直接量
var obj={"属性名":值,
xxx:...,
"方法名":function(){ ...this.属性名... }
}
2. 使用New关键字
var obj=new Object(); //创建一个空对象
obj.属性名=值;
obj.方法名=function(){...this.属性名...}
3. 利用构造函数*反复*创建*相同结构*的对象:
构造函数:描述一类对象结构的特殊函数
2步:
1. 定义构造函数
function Sumname(value1,.....){
this.属性名=属性参数1;
//在当前正在创建的对象中添加一个属性名
//赋值为属性参数1的值
...
this.方法名=function(){
...this.属性名...
}
}
2. 利用构造函数创建对象:
var obj=new Sumname(value1,...);
2、面向对象有什么特点?
面向对象三大特点:封装 继承 多态
封装:将描述同一个东西的属性和方法,定义在一个对象中
继承:父对象中的属性和方法,子对象可直接使用
多态:同一个对象,在不同情况下,呈现不同的状态
注意: 重载->同一方法名,传入参数不同,执行不同的操作
重写:子对象觉得父对象的成员不好用,可自己定义一个,覆盖父对象的成员