0

我是一名尝试学习 JavaScript 精神的 Java 开发人员。

这两种在 JavaScript 中创建静态对象的方法是否在任何非语法方面都不同?从 JavaScript 程序员的角度来看,哪种方法更容易接受?

方法一:

var obj = {};
obj.field1 = /* some expression */;
obj.field2 = /* some expression */;

方法 B:

var obj = {
    field1: /* some expression */,
    field2: /* some expression */
};
4

1 回答 1

1

我相信这两个对象最终都会以类似的方式创建,并且性能差异(如果有的话)将非常微小,以至于您不应该注意到差异。

不过,这并不普遍。创建数组时,使用与 B 类似的方法更有效。这是因为(至少在 V8 中)分配具有设定大小的数组更有效,因为它知道数组的大小。

// Here V8 can see that you want a 4-element array containing numbers:
var a = [1, 2, 3, 4];

// Don't do this:
a = []; // Here V8 knows nothing about the array
for(var i = 1; i <= 4; i++) {
    a.push(i);
}

资料来源:粉碎杂志

我建议尝试使用Chrome 分析工具,看看您是否能注意到两种方法的效率之间的差异,尽管我认为如果存在差异,它会太小而无法产生影响。

此外,如果您是 JavaScript 新手,我建议您查看由 AirBnB 创建的很棒的JavaScript 样式指南。编写高效和干净的 JavaScript 有很多很棒的技巧。

于 2013-07-25T14:32:58.683 回答