Foo每次Foo()调用时都会在内存中重新创建匿名函数吗?
function Foo(product)
{
return function(n) {
return n * product;
}
}
Run Code Online (Sandbox Code Playgroud)
我或多或少对 V8 的实现特别感兴趣,因为我在规范中没有看到任何与此相关的内容(除非我遗漏了一些东西,我可能是这样)。
我对正在进行的内存管理有点困惑,因为使用product特定于返回的闭包;然而,这并不一定说的内部函数有重新创建了一个封闭的实例(理论上)一起,因为你仍然可以.bind()不失关闭值。
据我所知,每次都会重新创建一个新的函数对象,但该函数的代码(主体)通常会被重用。但我不知道在什么情况下不会。
https://groups.google.com/forum/#!topic/v8-users/BbvL5qFG_uc
| 归档时间: |
|
| 查看次数: |
464 次 |
| 最近记录: |