我刚刚注意到,在将变量指定为Object
时,变量的类型是'函数'而如果我使用对象文字符号{}
将其指定为空对象或实例化为new Object
,则typeof变量是一个对象。
这有什么区别?
请注意,我没有问对象文字表示法和构造函数表示法之间的区别。
答案 0 :(得分:7)
全局符号Object
引用Object 构造函数。将Object
分配给变量只会复制该引用,并且与分配对新空对象({}
)的引用完全不同。
也许你在考虑:
var a = new Object();
var b = {};
这两个陈述做同样的事情。
答案 1 :(得分:4)
答案 2 :(得分:2)
a = Object;
不会创建新对象。它将构造函数赋值给变量a
。要创建新对象,请使用以下代码:a = new Object();
答案 3 :(得分:1)
let a = new Object();
创建一个新的对象,打印为{}
。
let a = {};
创建一个新的对象,打印为{}
。与上述方法没有什么不同。
let a = Object;
Object
是构造函数,调用它将返回一个新对象,但最好将new
关键字用于代码约定。我个人选择在JavaScript中使用let a = {};
。构造函数是一个函数,这就是控制台告诉你它刚创建函数的原因。