JavaScript 是一种原型语言,而不是像 C# 这样的经典语言。尽管 JavaScript 确实有一个看起来很像 C# 的 new 运算符,但您不应该使用它来创建新对象或数组。
//Bad way to declare objects and arrays
var person = new Object(),
keys = new Array();
新关键字被添加到语言中部分是为了安抚经典语言,但实际上它往往使开发人员感到困惑而不是帮助他们。取而代之的是,JavaScript 中有一些原生方式来声明对象和数组,您应该使用它们来代替。
您应该使用文字符号来声明对象和数组,而不是使用前面的语法。
//Preferred way to declare objects and arrays
var person = {},
keys = [];
使用这种模式,你实际上有很多使用对象文字和数组初始化语法的表达能力。
//Preferred way to declare complex objects and arrays
var person = {
firstName: "Elijah",
lastName: "Manor",
sayFullName: function() {
console.log( this.firstName + " " +
this.lastName );
}
},
keys = ["123", "676", "242", "4e3"];
最佳实践
您应该使用它们的文字符号来声明所有变量,而不是使用新的操作。以类似的方式,您不应该对布尔、数字、字符串或函数使用 new 关键字。他们所做的只是增加额外的膨胀并减慢速度。
使用 new 关键字的唯一真正原因是,如果您正在创建一个新对象,并且希望它使用您定义的构造函数。有关此主题的更多信息,您可以查看 Douglas Crockford 的题为 JavaScript,We Hardly new Ya 的帖子。