网络编程
位置:首页>> 网络编程>> JavaScript>> javascript中类的创建和继承

javascript中类的创建和继承

作者:yring 来源:经典论坛 发布时间:2008-05-08 12:07:00 

标签:类,prototype,继承,javascript

类的定义

类定义有三种基本方法,

1、创建并能返回特定类型的对象的函数(工厂函数),例如:function Co(){ var o = new Object; o.a = 1 return o}; 用这种方式创建对象: var o = Co()

2、创建构造函数,用new 实例化,例如 function Co(){this.a = 1} 用这种方式创建对象:var o = new Co()

3、原型方式,利用对象的prototype属性,例如 function Co(){}; Co.prototype.a = 1; 用这种方式创建对象: var o = new Co()

可灵活运用这三种方式进行组合

类的继承

类的继承有两种基本方法

1、对象冒充 基本原理: 构造函数使用this关键字给所有属性和方法赋值(构造函数实际上仅仅是赋值函数),所以可以利用一种方式,在类内部直接运行赋值函数,把其this关键字传递给新类。例如:

var a = function(){   
    this.a = 1;   
    this.b = 2;   
    alert(this);   
}   
  
var b = function(){   
    this.aa = a;//对a中的this进行转换,同样的方式还有   
    this.aa();   
    delete this.aa;  //要把这个中间方法删除掉,否则可能会在以后的操作中覆盖原来类的方法   
  
    //或者   
    a.call(this,arg1,arg2);   
    //或者   
    a.apply(this,[args]);   
}   
  
var ob = new b();     
var a = function(){
    this.a = 1;
    this.b = 2;
    alert(this);
}
var b = function(){
    this.aa = a;//对a中的this进行转换,同样的方式还有
    this.aa();
    delete this.aa;  //要把这个中间方法删除掉,否则可能会在以后的操作中覆盖原来类的方法
    //或者
    a.call(this,arg1,arg2);
    //或者
    a.apply(this,[args]);
}
var ob = new b();    

2、原型链

基本原理:关于原型链,详见(http://www.javaeye.com/topic/53537)把超类的一个实例付给子类的prototype对象,即可把超类的固定属性和方法传递给子类,要注意一点,这种方法无法在实例化时传递参数,所以一般采用混合方式进行类的继承。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com