Lucifer_can 2008-11-14 11:31
浏览 261
已采纳

关于JS动态原型的一点疑惑

例1:
[code="javascript"]
var s = function(){
s.name = "black";
s.run = function(){
//do something for this.....
}
}
[/code]

例2:
[code="javascript"]
var s = function(){
s.name="black";
}
s.prototype.run = function(){
//do something for this.....
}
[/code]

偶然浏览到书中,说例1的方法中存在内存泄漏。小弟愚钝,在代码中只能看出
如果 new 100个对象的话,那么使用例1,无非是创建了100个run方法。
而使用例2,只是创建了了100个对象,创建了1个run方法。

可是这和内存泄漏有什么关系呢????
[b]问题补充:[/b]
例1:

var s = function(){
    this.name = "black";
       this..run = function(){
             //do something for this.....
    }
}

例2:

var s = function(){
   this..name="black";
}
s.prototype.run = function(){
  //do something for this.....
}

偶然浏览到书中,说例1的方法中存在内存泄漏。小弟愚钝,在代码中只能看出
如果 new 100个对象的话,那么使用例1,无非是创建了100个run方法。
而使用例2,只是创建了了100个对象,创建了1个run方法。

可是这和内存泄漏有什么关系呢????

呵呵,笔误了。

  • 写回答

2条回答 默认 最新

  • iteye_19872 2008-11-14 15:34
    关注

    1.你函数里的s应该是this吧。笔误?
    2.泄露是胡扯。只有牵涉到DOM才会存在泄露的可能。如果只有native的js对象都要泄露,浏览器厂商可以剖腹谢罪了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?