首页 > 代码库 > 面向对象的继承

面向对象的继承

继承是在原有对象基础上,略作修改,得到一个新的对象,而不影响元有对象的功能。

添加加成的方法:

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方法

面向对象的继承