2014-03-24 33 views
-1

这两个类中哪一个需要更多的内存,为什么?这两个类中的哪一个需要更多的内存,为什么?

function ClassA() { 
    var inc = 1; 
    this.method = function (b) { 
     return b + inc; 
    } 
} 

function ClassB() { 
    var inc = 1; 
    this.method = function (b) { 
     return b + 1; 
    } 
} 
+2

这听起来像一个家庭作业问题。你为什么不告诉我们你认为哪一个需要更多的记忆以及为什么你这么想? –

+1

@ p.s.w.g作业问题o_0?这是JS引擎实现细节。我很乐意接受_that_课程。 –

+0

如果是家庭作业(我同意这听起来像是这样),我想它会根据他们在课堂上学到的内容从概念上提出需要更多记忆的问题。 –

回答

4

这是不可能的,这取决于你使用的JavaScript环境以及其他许多因素。例如,在V8中,第一个需要创建一个闭包,需要更多的内存,但这可能会在明天或下个月发生变化。其他发动机可能也有很大不同。

值得一提的是,请不要执行过早的优化。在大多数情况下,它是万恶之源。有这样一个优化是有益的,但通常有很多首先收获的结果较少。

+1

更多关于过早优化! http://c2.com/cgi/wiki?PrematureOptimization – tymeJV

+0

找到它 - 在V8中阅读关于闭包:http://mrale.ph/blog/2012/09/23/grokking-v8-closures-for-fun。 html。我只想再次强调,将第一个变量标识为常量的优化消除了闭包,并且内联是非常可能的,即使今天没有完成。一般来说,改进型发动机在关闭方面的表现仍然令人惊讶。 –

+0

另外 - 相关问题:https://code.google.com/p/v8/issues/detail?id=2206 –

0

答案必须围绕第一个使用inc和第二个使用1的差异以及相应需要的字节数。

相关问题