javascript原型模式

    在原型变成思想中,类并不是必须的,对象并不一定要从类中创建,一个对象通过克隆另一个对象而得到。

1、原型模式实现的关键是语言本身提供了clone方法,es5提供了Object.creat方法。如下:

var Plane=function(){

           this.blood=1000;

           this.attackLevel=1;

           this.defenseLebel=1;

        }

     

        varplane =new Plane();

         plane.blood=500;

         plane.attackLevel=10;

         plane.defenseLebel=7;

         

         var clonePlane = Object.create(plane);

         console.log(clonePlane);

 输出:

     Plane {}

     PlaneattackLevel:10

     blood:500

     defenseLebel:7

2、原型链

举一个例子,

    Object是Animal的原型,而Animal是Dog的原型,他们之间形成了一个原型链。

这个原型链很有用,如果我们调用Dog的某个方法,如果Dog没有,他就会委托给他的原型Animal,,如果Animal也没有这个属性,Animal就会顺着原型链委托给原型Object对象,这样一来就能形成继承的效果,看起来像是Animal是Dog的“父类”,而Object是Animal的“父类”。

    所有原型编程一个重要特性是,当无法响应某个请求时,会把请求委托给自己的原型。

原型编程有以下的规则:

l  所有数据都是对象。

l  要得到一个对象,不是实例化类,而是找到一个对象作为原型并克隆它。

l  对象会记住他的原型。

l  如果对象无法响应某个请求,他会把这个请求委托给自己的原型。

3、javascript的根对象是Object.prototype,Object.prototype是一个空对象,js中遇到的所有对象都是从Object.prototype克隆而来的。

4、克隆对象的方式:

l     varobj1=new Object();

l     varobj2={};


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值