javascript - 在构造函数中创建一个函数会比引用原型(prototype)函数使用更多的内存吗?

标签 javascript browser memory-management function closures

<分区>

Possible Duplicate:
JavaScript: Setting methods through prototype object or in constructor, difference?

我想这确实是一个关于浏览器闭包实现的问题。我知道在 JavaScript 中模拟类类功能的多种方法,包括使用各种库。这更多是关于资源的问题。

是否以这种方式创建一个函数每次调用时都创建一个public_function函数的新副本?潜在的问题是:这样做是否比将函数添加到 MyObject.prototype 使用更多的 RAM?

function MyObject(){
  this.public_function = function(){
    //... do something
  }
}

最佳答案

是的。

如果不出意外,这需要在 new MyObject() 创建的每个对象上都有一个插槽,而不是原型(prototype)上的一个插槽。

但当然,还有其他东西:匿名函数创建一个闭包,捕获它定义的范围。同样,必须为 MyObject 创建的每个对象存储

这是否真的重要将取决于您创建了多少对象...

另见:

关于javascript - 在构造函数中创建一个函数会比引用原型(prototype)函数使用更多的内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3122280/

相关文章:

javascript - 执行mysql查询后刷新图表(javascript)

Objective-C:为什么自动释放池存在并以它们的方式工作?

javascript - Hapi.js + Socket.io 一起

javascript - 如何迭代两个对象并根据 JS 中的另一个更新一个值?

javascript - 浏览器使用缓存而不重新验证

google-chrome - 当浏览器发送cookies时没有从服务器收到?

html - 渲染性能 : style attributes or classnames and stylesheet rules?

C:分配比需要更多的内存有好处吗?

c - 编译期间什么时候分配内存?

javascript - 不兼容类型错误 Facebook 流程