Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这两个类中的哪一个需要更多内存?为什么?_Javascript - Fatal编程技术网

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

Javascript 这两个类中的哪一个需要更多内存?为什么?,javascript,Javascript,这两个类中的哪一个需要更多内存?为什么 function ClassA() { var inc = 1; this.method = function (b) { return b + inc; } } function ClassB() { var inc = 1; this.method = function (b) { return b + 1; } } 很难说,这取决于您使用的JavaScript环境以及

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

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

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

很难说,这取决于您使用的JavaScript环境以及许多其他因素

例如,在V8中,第一个需要创建一个闭包,并且需要更多内存,但这可能会在明天或下个月发生变化。在其他发动机中也可能有很大的不同


值得一提的是,请不要过早进行优化。在大多数情况下,它是一切罪恶的根源。在一些非常紧张的地方,这样的优化是有益的,但是通常会有很多低结果的果实需要首先收获

答案必须围绕第一个使用
inc
和第二个使用
1
的区别,以及相应的所需字节数。

这听起来像是一个家庭作业问题。@p.s.w.g作业问题o_0,你为什么不告诉我们你认为哪一个会占用更多的内存,以及你为什么这么认为?这是JS引擎的实现细节。我很想上这门课。如果是家庭作业(我也同意这听起来很像),我想应该是根据他们在课堂上所学的内容,从概念上问他们哪些需要更多的记忆。这是一个家庭作业。但我不知道答案。我甚至不知道该猜什么@本杰明·格伦鲍姆帮助我认识到第一个问题实际上是一个了结。现在我明白了为什么它可能需要更多的内存。@Green,但事实并非如此。如果这是答案,那么你的老师是错的。很难说。说第一个总是比第二个占用更多的内存是不正确的。这取决于很多事情。除非您正在编写库或“非常热”的紧循环代码,否则不应该进行这些优化。在闭包之前,还有很多其他因素会影响性能。更多关于过早优化的内容!找到它-很好地阅读了V8中的闭包:。我只想再次强调,将第一个变量标识为常量的优化,消除闭包和内联是非常可能的,即使今天不这样做。一般来说,对于闭包,仍然有很多改进引擎的方法。还有一个相关的问题:“在大多数情况下,它是万恶之源。”听起来有点像这样: