使用 {} 或 new Object() 在 JavaScript 中创建一个空对象?
2022-08-29 23:26:48
在 JavaScript 中创建空对象有两种不同的方法:
var objectA = {}
var objectB = new Object()
脚本引擎处理它们的方式有什么区别吗?有什么理由使用一个而不是另一个?
同样,也可以使用不同的语法创建一个空数组:
var arrayA = []
var arrayB = new Array()
在 JavaScript 中创建空对象有两种不同的方法:
var objectA = {}
var objectB = new Object()
脚本引擎处理它们的方式有什么区别吗?有什么理由使用一个而不是另一个?
同样,也可以使用不同的语法创建一个空数组:
var arrayA = []
var arrayB = new Array()
使用没有任何好处 - 虽然可以使您的代码更紧凑,更具可读性。new Object();{};
对于定义空对象,它们在技术上是相同的。语法更短,更整洁(更少Java风格),并允许您立即以内联方式填充对象 - 如下所示:{}
var myObject = {
title: 'Frog',
url: '/img/picture.jpg',
width: 300,
height: 200
};
对于数组,使用over同样几乎没有任何好处 - 除了一个小的例外:new Array();[];
var emptyArray = new Array(100);
创建一个 100 个项目长的数组,其中所有插槽都包含 - 这在某些情况下可能很好/很有用(例如 )。undefined(new Array(9)).join('Na-Na ') + 'Batman!'
new Object();{};[];是的,有区别,它们不一样。确实,您将获得相同的结果,但是引擎以不同的方式为它们工作。其中一个是对象文字,另一个是构造函数,这是在javascript中创建对象的两种不同方式。
var objectA = {} //This is an object literal
var objectB = new Object() //This is the object constructor
在JS中,一切都是一个对象,但是你应该知道new Object()的以下事情:它可以接收一个参数,并且根据该参数,它将创建一个字符串,一个数字,或者只是一个空对象。
例如:,将返回一个数字。 将返回一个字符串,这意味着对象构造函数可以委托 - 根据参数 - 对象创建给其他构造函数,如字符串,数字等...在管理动态数据以创建对象时,牢记这一点非常重要。new Object(1)new Object("hello")
许多作者建议不要使用对象构造函数,因为你可以改用某种文字表示法,这样你就可以确保你正在创建的内容是你期望在代码中拥有的东西。
我建议你进一步阅读javascript上文字符号和构造函数之间的差异,以找到更多细节。