Javascript中类的定义和继承

类的定义有3种基本方法:

1、创建并能返回特定类型的对象的函数(工厂函数)如:

function wu()

{

  var w=new object;

  o.a=1;

  return o;

}用这种方式创建对象:var u=wu();

2、创建构造函数,用new实例化例如:

function wu()

{this.a=1;}

用这种方式创建对象: var u=new wu();

3、原型方式,利用对象prototype的属性例如:

function wu()

{}

wu.prototype.a=1;

用这种方式创建对象 var u=new wu();


类的继承

 

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

var a=function()

{

 this.a=1;

this.b=1;

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

 

原型链:

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

prototype.js中的类定义和继承 :
/** obsolete syntax **/ 

var person=Class.create();//通过class.create方法创建一个空类

person.prototype={

//把方法定义到prototype中,注意,是通过initalize方法初始化类的属性

    initilazie:function(name){

     this.name=name;

   },

   say:function(message){

   return this name+":"+message;

   }

}

 var guy=new person('wu');

guy.say('hi');

你可能感兴趣的:(Javascript中类的定义和继承)