面向对象
面向对象oop(Object Oriented Programming)
面向过程pop(Process-oriented programming)
什么是面向对象
由于面向对象中含有一些面向过程的思想所以说到面向对象呢得先提一下面向过程什么是面向过程呢,他是根据思路一步一步写出来,比较注重于过程的一种编程思想
而面向对象呢它具有封装,继承,多态这几种特征把重复的事情封装起来如果用到它就重复使用它比较节省代码,比较注重于结果的一种编程思想
例子:
1、面向过程:自己造电脑 面向对象:自己组装电脑
2、面向对象:就是你叫服务员倒一杯水给你。怎么倒你不用管。
面向过程:就是你教服务员如何一步一步倒一杯水给你。
封装封装就是把我们常用的具有共同特征的属性和方法提取出来放在一个对象中统一管理。就是写成对象的形式
继承继承就是子对象通过原型继承方式,和构造函数继承方式能够拥有父对象的属性和方法
多态多态体现在我们对对象的创建,对象的封装,对象的继承具有多种方方式,而且可以灵活嵌套使用
面向对象创建的3种方式
1、字面量创建
var a={
name:"张三"
}
2、工厂函数创建
funciton aa(name){
var a=new Object();
a.name=name;
return a;
}
var x=aa("张三");
alert(x.name);
3、构造函数创建
funciton aa(name){
this.name=name;
}
var x=new aa("张三");
alert(x.name)
继承
1、类式继承(构造函数继承)利用apply call 改变this指向 实现继承
function Parent(toufa,yanpi)
{
this.toufa=toufa;
this.yanpi=yanpi;
}
function Child(name)
{
this.name=name;
//Parent.call(this."黑色","单");//黑色 和单是parent的参数 toufa yanpi
Parent.apply(this,["黑色","单"]);//apply 必须以数组的方式
}
var c1=new Child();
var c2=new Child();
alert(c1.toufa);
2、原型链继承
function Parent()
{
this.toufa="黑色";
}
function Child()
{
this.name="张三";
}
var p1=new Parent();
//Child.prototype.toufa="黑色";
Child.prototype=p1;//把Child中的prototype属性赋值成p1实例对象
var c1=new Child();//p1中有的属性 这时候c1c2里都有
var c2=new Child();
alert(c1.toufa);
3、组合式继承 就是把 构造函数继承和原型链继承 组合起来用
g�����a��