以下内存管理方面有哪些优缺点?
- 分配给变量然后将其传递给函数
const a = {foo: 'bar'}; // won't be reused anywhere else, for readability
myFunc(a);
- 直接传递给函数
myFunc({foo: 'bar'});
第一个和第二个代码在传递变量的方式上完全没有区别(除非你还需要在代码中使用a
)。
只有2例,其中第一例可能比第二例更受欢迎。
这取决于JavaScript引擎的实现。一个引擎可能在第一个示例中为变量分配内存而不在直接传递的示例中分配内存,而另一个实现可能足够智能以编译代码,使得第一个示例不为变量分配内存从而使第一个例子表现为直接通过的例子。
我不太了解具体的引擎,告诉你每个人具体做什么。您必须查看每个JS引擎(或询问每个引擎的作者)以获得更确定的答案。