javascript继承的基本写法
/*
* 类继承的基本写法
* 1:构造函数用来new一个类对象,并且可以传递参数
* 2:给类名的prototype对象赋值,用来表示从一个其他类继承
* 3:重新给类的prototype对象的constructor指针赋值,用来重新定位其构造函数
* 4:需要注意的var p = new parent();p相当于parent.prototype对象的一个实例,只是指向了一次
* 构造函数,进行了一些初始值的赋值
* */
function parent(name,age,sex){
this.name = name;
this.age = age;
this.sex = sex;
}
//这种写法相当于让parent类从一个自定义的object类继承了
parent.prototype = {
/*这里相当于一个自定义的object*/
name:"",
age:"",
sex:"",
say:function(){
window.alert(this.name + "\n" + this.age + "\n" + this.sex);
}
}
//这行代码用来重新指定parent类的构造函数指针指向的对象,
//如果没有该行代码则var p = new parent(); p.constructor指向的是object(){}也就是
//其所在类的prototype对象的constructor
parent.prototype.constructor = parent;
function child(name,age,sex,work){//定义子类的构造方法
this.supperClass.call(this,name,age,sex);//调用父类的构造方法
this.work = work;//加入自己的属性赋值
}
child.prototype = new parent();//new parent()相当于上面的{},{}相当于new Object(){}
child.prototype.supperClass = parent;//可以在子类中加入一个自定义的superClass表示其对应父类
child.prototype.say=function(){//自己的方法逻辑
alert(this.name + "\n" + this.age + "\n" + this.sex + "\n" + this.work);
}
child.prototype.constructor = child;
调用方式:
var p = new parent();
p.say();
var c = new child();
c.say();