转:javascript 中 new 的作用

来源:互联网 发布:历年固定资产投资数据 编辑:程序博客网 时间:2024/04/30 20:12

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>

原创粉丝点击