function person(name,age){
this.name=name;
this.age=age;
this.sayHi=function(){
alert("hi");
}
}
person.prototype.walk=function(){
alert("walk......");
}
function student(name,age,grade){
this.newMethod=person; //冒充person对象,就可以传递父类的特权属性和特权方法给子类;
this.newMethod(name,age);
this.grade=grade;
}
var stu=new student("zhangsan",15,5);
//stu是student的对象,继承person;将拥有person的所有属性和方法;
// alert(stu.name); //zhangsan;
// alert(stu.age); //15
// alert(stu.sayHi);
// alert(stu.grade);//5
// stu.walk(); //报错
stu.sayHi();
-例子中通过this.newMethod=person; this.newMethod(name,age);,student就可以冒充person对象,就可以传递父类的特权属性和特权方法给子类;
-特权属性、特权方法:
-按照默认情况,stu 是继承父类的,stu是student的对象,继承person;将拥有person的所有属性和方法;
-walk属于person的prototype对象,不属于person的对象;
-注:【用prototype定义的属性和方法都是共有的】
-stu继承了person中的特权方法和属性,没有继承共有方法和属性;
alert(stu.sayHi);
stu.walk() //报错;