转:javascript 中 new 的作用

javascript中的new只是对Class的一种模拟,这个也就是说业界说的javascript的类的类不是类的原因,因为他是模拟的。


 javascript中的New只不过做了5件事。

  

  1. 创建Object;

  2.查找Class的Prototyp上的所有方法,属性,复制一份给创建Object(注意吗,如果prototype上有属性是Function或者是Object,那么只复制指针);

  3.将构造函数ClassA内部的This 只想创建的Object;

  4.创建的Object的_preot_只想Class的prototype;

  5.执行构造函数;

 例子:

<script>

function classA(){

     this.b=44;

}

     classA.prototype.b=44;

classA.prototype.show=function(){

     alert(this.b)

}

var b=new classA();

      b.show();

function newClass(cls,args){

   var obj={};

   for(var p in cls.prototype){

      obj[p]=cls.prototype[p];

   }

   obj._proto_=cls.prototype;

   cls.apply(obj,args||[]);

   return obj;

}

var k=newClass(classA);

k.show();

</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值