变量赋值与直接传递给函数

时间:2019-04-05 06:16:02

标签: javascript

在以下方面的内存管理方面,优点/缺点是什么?

  
      
  1. 分配给变量,然后将其传递给函数
  2.   
const a = {foo: 'bar'}; // won't be reused anywhere else, for readability
myFunc(a);
  
      
  1. 直接传递给函数
  2.   
myFunc({foo: 'bar'});

2 个答案:

答案 0 :(得分:0)

第一和第二代码在传递变量的方式上绝对没有区别(除非您稍后还要在代码中使用a)。

只有2种情况下,第一种可能比第二种更好。

  1. 您需要在其他地方使用变量
  2. 变量声明太长,您想将其分成两行,或者您正在使用复杂的算法,并且希望为每个步骤命名,以提高可读性。

答案 1 :(得分:0)

这取决于JavaScript引擎的实现。在第一个示例中,一个引擎可能会为变量分配内存,而在直接传递的示例中,一个引擎可能不会分配内存,而另一种实现可能很聪明,可以编译代码,使得第一个示例不为变量分配内存。因此将第一个示例作为直接传递的示例进行操作。

我对特定的引擎了解不多,无法告诉您每个引擎具体做什么。您必须查看每个JS引擎(或要求每个JS引擎的作者)才能获得更明确的答案。