应该是这样的prototype 是一个副本,如果按你这么写每次new 之后 都用的是不同的副本我个人习惯于把方法写到prototype中。 

解决方案 »

  1.   

    就像楼上说的.你new一个看不出来.new 1万个好了
    上面两种方法,明显第一种方法占用内存空间小很多
      

  2.   

    就像楼上说的.你new一个看不出来.new 1万个好了
    上面两种方法,明显第一种方法占用内存空间小很多
    应该是这样的prototype 是一个副本,如果按你这么写每次new 之后 都用的是不同的副本我个人习惯于把方法写到prototype中。  
      

  3.   

    精辟总结:
      为了扩展!你定死了function xxx之后无法重写
      

  4.   

    我没有看懂你修改后的代码。
    你修改后的SDmodel来自哪里?
    如果仅仅是该死的笔误的话,那么楼主以后应该注意,否则程序会经常因为这些造成所谓莫名其妙的错误。我经验有限,也没能看懂楼主的意思,猜测地提供给楼主的只有一点点:
    prototype是javascript构造类的形式,
    每当遇到new操作符的时候,js解释器就会产生一个对象,将构造函数的prototype的属性全部拷贝一份给产生的对象,并且将构造函数内部的this指向产生的那个对象。(这个貌似说过好多次)
    也就是new出来的对象什么都是新的,都是prototype的初始值。
    各个new出来的对象毫不相关。
    而直接用某个对象进行操作,你第一次操作的导致该对象的某些属性发生了变化,那么它会影响你的后续操作。
    另外js中对对象的操作不如对局部变量的操作快。
      

  5.   

    “每当遇到new操作符的时候,js解释器就会产生一个对象,将构造函数的prototype的属性全部拷贝一份给产生的对象,并且将构造函数内部的this指向产生的那个对象。(这个貌似说过好多次)”
    “拷贝”这个词好像用的不妥吧?
      

  6.   

    谁能详细解释一下
    function scrollDoor(){}
    scrollDoor.prototype = 
    {sd : function(menus,divs,openClass,closeClass){
       var _this = this;
       if(menus.length != divs.length)
       {
    .....
    的具体含义