当前位置: 首页 > 面试题库 >

“ new Object()”和对象文字符号之间有什么区别?

周昊乾
2023-03-14
问题内容

创建对象的基于构造函数的语法之间有什么区别:

person = new Object()

…以及这种文字语法:

person = {
    property1 : "Hello"
};

尽管JSLint偏爱您使用对象文字表示法,但两者似乎都做相同的事情。

哪一个更好,为什么?


问题答案:

除了您的第二个对象创建对象并向其添加属性之外,它们都执行相同的操作(除非某人做了不寻常的操作)。但是文字表示法在源代码中占用的空间更少。可以很清楚地知道发生了什么,因此使用new Object(),您实际上只是在输入更多内容,并且(从理论上讲,如果JavaScript引擎未对其进行优化)执行不必要的函数调用。

这些

person = new Object() /*You should put a semicolon here too.  
It's not required, but it is good practice.*/ 
-or-

person = {
    property1 : "Hello"
};

从技术上讲,不要做同样的事情。第一个只是创建一个对象。第二个创建一个并分配一个属性。为了使第一个相同,然后需要第二个步骤来创建和分配属性。

某人可以做的“异常事情”将是阴影或分配给默认Object全局变量:

// Don't do this
Object = 23;

在那种非常不寻常的情况下,new Object将失败,但是{}会起作用。

在实践中,没有理由使用new Object而不是{}(除非您已经完成了非常不寻常的事情)。



 类似资料:
  • 本文向大家介绍“ new Object()”和JavaScript中的对象文字符号之间有何区别?,包括了“ new Object()”和JavaScript中的对象文字符号之间有何区别?的使用技巧和注意事项,需要的朋友参考一下 新表示法和对象文字({})表示法都做同样的事情。他们初始化一个对象。但是,如果您开始向其添加属性,第二种表示法可能会有所不同。 示例 此初始化等效于- 要么

  • 问题内容: 我是JSON和JavaScript对象的新手。 有人可以解释JSON和JavaScript对象之间的区别吗? 它们有什么用? 这个比那个好吗?还是取决于情况? 什么时候使用哪个,在什么情况下? 为什么首先创建JSON?它的主要目的是什么? 有人可以举例说明何时应该使用JSON而不是JavaScript对象,反之亦然吗? 问题答案: 首先,您应该知道什么是JSON: 它是与 语言无关的

  • 问题内容: 字符串文字和字符串对象的添加有什么区别? 例如 为什么/ 不指向与相同的位置? 问题答案: 因为不是 常量表达式 ,由于和不是,因此其结果不会被插入,即创建另一个对象来表示它,因此引用比较产生。 JLS 3.10.5字符串文字 : 使用String.intern方法,对字符串常量(或更常见的是常量表达式的值(第15.28节)的字符串)进行“ interned”,以便共享唯一的实例。 J

  • 问题内容: 后者是否仅引用由自定义构造函数创建的非原始函数对象(例如,var bird1 = new Bird();)? 问题答案: 这两个术语在ECMAScript规范中定义: 本机对象 ECMAScript实现中的对象,其语义由此规范而不是由主机环境完全定义。 注:本规范中定义了标准本机对象。一些本地对象是内置的。其他的可以在执行ECMAScript程序的过程中构造。 宿主对象 主机环境提供的

  • 问题内容: 之间有什么区别 和 问题答案: 当你使用字符串文字时,可以将字符串嵌入,但是当你使用时,你将获得一个新的字符串对象。 在此示例中,两个字符串文字均引用相同的对象: 在这里,创建了2个不同的对象,它们具有不同的引用: 通常,应尽可能使用字符串文字表示法。它更易于阅读,并且为编译器提供了优化代码的机会。

  • 问题内容: 我正在使用Eclipse来帮助我清理一些代码以正确使用Java泛型。大多数时候,它在推断类型方面做得非常出色,但是在某些情况下,推断类型必须尽可能地通用:对象。但是Eclipse似乎给了我一个选择,可以选择对象类型还是“?”类型。 那么两者之间有什么区别? 和 问题答案: 匹配项的实例,但不是。假设您要编写一个接受Strings到任何内容的映射的方法:如果您要编写 您无法提供。如果你写