模拟JavaScript中类和继承

在面向对象的语言中,我们使用类来创建一个自定义对象。然而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();

 

 

转载于:https://www.cnblogs.com/starweb/archive/2012/05/31/2528720.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值