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

Ram*_*h N 5 javascript

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

请注意,我不是要问对象文字表示法和构造函数表示法之间的区别.

在此输入图像描述

Poi*_*nty 7

全局符号Object引用Object 构造函数.分配Object给变量只是创建该引用的副本,并且与分配对新空对象的引用完全不同({}).

也许你在考虑:

var a = new Object();
var b = {};
Run Code Online (Sandbox Code Playgroud)

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


JSO*_*ulo 2

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