JavaScript-对象创建与更新

JavaScript-对象创建与更新,javascript,performance,object,Javascript,Performance,Object,在JavaScript中: 例1: var x={} x.a=10 例2: var x={} x={a:10} 考虑到许多属性需要附加到var x,而不仅仅是a,示例1和示例2在性能方面是否有任何差异 哪个更有效?选择选项3: var x = { a: 10, b: 20, // etc }; 不要将x声明为空对象,只将其替换为具有a属性的对象 当需要在对象上设置大量属性时,使用这样的对象文字比单独添加每个属性更有效。然而,这种差异将是微不足道的 选项1的缺点是: 对要

在JavaScript中:

例1:

var x={}
x.a=10

例2:

var x={}
x={a:10}

考虑到许多属性需要附加到
var x
,而不仅仅是
a
,示例1和示例2在性能方面是否有任何差异

哪个更有效?

选择选项3:

var x = {
    a: 10,
    b: 20,
    // etc
};
不要将
x
声明为空对象,只将其替换为具有
a
属性的对象

当需要在对象上设置大量属性时,使用这样的对象文字比单独添加每个属性更有效。然而,这种差异将是微不足道的

选项1的缺点是:
对要添加到对象中的每个属性执行1个操作,这将在需要大量属性时产生影响

选项2的缺点是:
您正在声明对象,然后将其完全替换

我的建议只是一次性将所有必需的属性添加到对象中,而不替换变量。

选择选项3:

var x = {
    a: 10,
    b: 20,
    // etc
};
不要将
x
声明为空对象,只将其替换为具有
a
属性的对象

当需要在对象上设置大量属性时,使用这样的对象文字比单独添加每个属性更有效。然而,这种差异将是微不足道的

选项1的缺点是:
对要添加到对象中的每个属性执行1个操作,这将在需要大量属性时产生影响

选项2的缺点是:
您正在声明对象,然后将其完全替换


我的建议只是一次性将所有必需的属性添加到对象中,而不替换变量。

没有选项3。@Vladimirs:那么?我想说的是,OP发布的两个选项都不是一个好主意。我建议您选择这两个选项之外的另一个选项。@Cerbrus选项3在您必须在移动中添加属性时不起作用。但你剩下的答案解释了一些事情。@Vladimirs我怎么把钉子钉在墙上?用勺子还是用叉子?按照你的逻辑,你会说是勺子,我会说是锤子。这里没有选项3。@Vladimirs:那么?我想说的是,OP发布的两个选项都不是一个好主意。我建议您选择这两个选项之外的另一个选项。@Cerbrus选项3在您必须在移动中添加属性时不起作用。但你剩下的答案解释了一些事情。@Vladimirs我怎么把钉子钉在墙上?用勺子还是用叉子?按照你的逻辑,你会说是勺子,我会说是锤子
x
指向的旧对象替换为
{a:10}
。没有必要将
x
初始化为等于
{}
x={a:10}
x
指向的旧对象替换为
{a:10}
。没有必要将
x
初始化为等于
{}