在面向对象的语言中,我们使用类来创建一个自定义对象。然而JavaScript中所有事物都是对象,那么用什么办法来创建自定义对象呢?

这就需要引入另外一个概念 - 原型(prototype),我们可以简单的把prototype看做是一个模版,新创建的自定义对象都是这个模版(prototype)的一个拷贝 (实际上不是拷贝而是链接,只不过这种链接是不可见,给人们的感觉好像是拷贝)。

让我们看一下通过prototype创建自定义对象的一个例子:

//构造函数

function Life(name,type){

  this.name=name;

  this.type = type;

}
//life的原型,原型中的属性可以被自定义对象引用
life.prototype = {

  getName:function(){

    alert(this.name);

  },

  getType:function(){

    alert(this.type);

  }

}


实例化类的代码:

var people = new Life("张三","人");
   people.getName();
var cat = new Life("八路","猫");
    cat.getType();

当var people = new life("张三","人"); 执行时:
  1、创建一个空对象(new Object())
  2、链接life.prototype中的属性到这个空对象
  3、将这个对象通过this关键词传递到构造函数中并执行构造函数
  4、赋值给变量people

如何在javascript中实现简单的继承呢?

下面的例子将创建一个类test,它从Life继承了原型prototype中的所有属性


function
Test(name,type,testId){ this.name = name; this.type = type; this.id = testId; }   //创一个Life实例,将Test的原型指向它。Life的实例可以调用Life的属性和方法,所以Test的原型也可以调用。
Test.prototype
= new Life(); Test.prototype.getId = function(){ alert(this.id); } var t = new Test('树',"植物",'1111'); t.getName(); t.getId();

 

 

 posted on 2012-05-31 16:40  刘卿  阅读(179)  评论(0编辑  收藏  举报