日期:2014-05-16  浏览次数:20458 次

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();