JavaScript中的原型(2011/7/14)

 

prototype在javascript是非常重要的,因为javascript没有继承的概念,所以javascript可以通过prototype来实现类似java中的继承,,且只有函数才有原型,原型是一个对象,对象没有原型,如下:

function FF(){};

alert(FF.prototype); // 这是一个对象

var f = new FF();

alert(f.prototype); //undefined

 

对象还可以动态添加属性

//给对象添加属性

FF.a = "FF.a";

alert(FF.a); //FF.a

 

f.a = "f.a";

alert(f.a); //f.a

 

FF.prototype.a = "FF.prototype.a";

alert(FF.prototype.a); // FF.prototype.a

而且通过原型添加的属性可以通过函数的属性访问,但不能通过对象的属性访问

 

FF.prototype.b = "FF.prototype.b";

alert(f.b); //FF.prototype.b

alert(FF.b); //undefined

 

 

利用prototype的概念实现继承

 

//理解javascript中的继承

function Animal(){

    this.a = "aaa";

}

Animal.prototype.name = "动物";

Animal.prototype.sex = "1";

 

var aa = new Animal();

alert(aa.a); // aaa

alert(aa.name); //动物

alert(aa.sex); //1

 

function Pig(){

    this.b = "bbb";

}

Pig.prototype = new Animal(); //实现了继承关系

 

var p = new Pig();

 

//搜索顺序:p对象 -> p的原型对象 ->p的原型对象的原型对象 -> ....

alert(p.a); // aaa

alert(p.name); //动物

alert(p.sex); //1

alert(p.b); //bbb

 

function LittlePig(){

}

LittlePig.prototype = new Pig();

 

var lp = new LittlePig();

alert(lp.name); // 动物

alert(lp.a); // aaa

alert(lp.b); // bbb

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值