首页 > 代码库 > 面向对象的继承
面向对象的继承
继承是在原有对象基础上,略作修改,得到一个新的对象,而不影响元有对象的功能。
添加加成的方法:
1.继承属性
call方法来继承属性,实现如下:
//父类
function createPerson(name,age){
this.name=name;
this.age=age;
}
function createArt(job){
createPerson.call(this,name,age);//当前createArt对象,继承createPerson中的name和age属性;createArt也有name和age属性;
}
2.继承方法
for in莱继承方法,实现如下
var a={
name:"小明";
}
var b=a;//通过赋值的方式创建对象,新创建的对象的属性值改变时,原来对象的属性值也会变化,下两行可以看出
b.name="李四";
alert(a.name);//a.name="李四";
要创建新的对象b,且新对象属性质的改变不影响原来对象,可以用for in来完成,如下:
for( var attr in a){
b[attr]=a[attr];//把a中的属性复制到b中,
}
b.name="lisi";//修改b中属性值,不会影响a,如下测试:
alert(a.name);//a.name依然是原来的“小明”;
另外一种写法:
function AAA(name,age){
this.name=name;
}
function BBB(name){
this.name=name;
}
AAA.prototype.showjob={}
function Extend(obj1,obj2){
for(var attr in obj1){
obj2[attr]=obj1[attr];
}
}
Extend(AAA.prototype,BBB.prototype)
BBB中也会有一个showjob方法
面向对象的继承