将变量指定为Object并将变量指定为Object Literal Notation / Object Constructor Notation之间的区别是什么?

时间:2017-09-19 12:58:46

标签: javascript

我刚刚注意到,在将变量指定为Object时,变量的类型是'函数'而如果我使用对象文字符号{}将其指定为空对象或实例化为new Object,则typeof变量是一个对象。 这有什么区别?

请注意,我没有问对象文字表示法和构造函数表示法之间的区别。

enter image description here

4 个答案:

答案 0 :(得分:7)

全局符号Object引用Object 构造函数。将Object分配给变量只会复制该引用,并且与分配对新空对象({})的引用完全不同。

也许你在考虑:

var a = new Object();
var b = {};

这两个陈述做同样的事情。

答案 1 :(得分:4)

当您将变量指定为Object时,它会将Object函数引用到它上,而当您执行新的Object或{}时,它只是使用它的父对象

的构造函数方法创建一个普通对象

您可以通过屏幕截图了解更多信息

enter image description here

enter image description here enter image description here

答案 2 :(得分:2)

a = Object;不会创建新对象。它将构造函数赋值给变量a。要创建新对象,请使用以下代码:a = new Object();

答案 3 :(得分:1)

let a = new Object();

创建一个新的对象,打印为{}

let a = {};

创建一个新的对象,打印为{}。与上述方法没有什么不同。

let a = Object;

Object是构造函数,调用它将返回一个新对象,但最好将new关键字用于代码约定。我个人选择在JavaScript中使用let a = {};。构造函数是一个函数,这就是控制台告诉你它刚创建函数的原因。