OOP:面向对象程序设计
OOP:面向对象程序设计
对象:程序中描述现实中一个物体的属性和功能的结构
一个对象专门代表现实中的一个物体
面向对象3大特点:封装(对象来封装属性和方法),继承(子对象用父对象属性方法,原型链),多态(如this 不同的场合不同状态,js对多态支持不好,仅讨论重写)
1. 如何创建对象:4种方式
1)使用直接量创建1个对象:
var obj={属性名:属性值,
属性名:属性值,
方法名:function(){...}
};
obj.__proto__指向Object.prototype
js底层,所有对象都是用hash数组存储的!
强调:对象自己的方法要使用自己的属性,必须用this.属性名,this.读作“当前对象的”
何时使用:仅创建一个单独的对象时
2)使用构造函数创建多个统一结构的对象
优:只需一次定义结构,即可反复创建相同结构的对象
如何使用构造函数:2步: *构造函数名用大写
Step1: 定义构造函数
function 类型名(属性参数1,属性参数2,...){
this.属性名1=参数1;
this.属性名2=参数2;
//this.方法名=function(){...}
if(!构造函数.prototype.方法){//将共有方法放在原型中,且只创建一次
构造函数.prototype.方法=function(){...}
}
}
Step2: 调用构造函数函数创建对象!
var obj=new 构造函数名(属性值1,属性值2,...);
其实程序执行了4步:
1. new创建空对象
2. 调用构造函数向新对象中添加属性和方法
3. 设置新对象的__proto__属性指向构造函数的原型对象
4. 返回新对象的地址给调用者
3)先创建空对象,再设置属性
var obj=new Object(); //创建空对象
={}; //或
obj.属性1=值1;
obj[属性2]=值2;