////Creating Object
var Obj;
// init Object
Obj= {};
答案 0 :(得分:7)
第一个在当前作用域中声明一个变量,它不会为它赋值,因此它不会创建任何对象,而第二个会创建一个空对象文字,您可以通过全局{{1变量。
主要区别有两个:范围变量和初始化与声明
例如:
Obj
答案 1 :(得分:6)
var Obj;
不创建对象,声明 变量 Obj
。
Obj = {};
使用空对象初始化变量Obj
。
当然,您可以将它组合起来并一次性完成:
var Obj = {};
如果你想根据某些条件初始化具有不同值的变量,或者如果变量应该在另一个范围内声明,那么你基本上只需要分离声明和初始化。例如:
var Obj;
if(something) {
Obj = 'me';
else {
Obj = 'you';
}
答案 2 :(得分:2)
var Obj;
不创建对象,声明变量。
Obj = {};
将一个空对象分配给名为Obj
的变量。如果先前未声明Obj
,则会隐式声明全局范围内的变量,因为缺少var
关键字(不要这样做)。
答案 3 :(得分:2)
var Obj;
只有声明 Obj
变量,而
var Obj = {};
将Obj
变量声明并初始化为空对象。
确保您也了解var
关键字的使用方法。它可用于声明和/或初始化变量。
Obj = {};
和
var Obj = {};
是var
- 更少的代码在全局命名空间中初始化Obj
(通常被认为是一种不好的做法)。
tl; dr:在大多数情况下,最好使用var
关键字在本地范围内同时初始化和声明:
var Obj = {};
答案 4 :(得分:1)
也许我不完全理解你的问题,但是......
var Obj= {};
完全没问题。
答案 5 :(得分:1)
第一个为变量Obj
分配槽,但保留未定义。第二个将新创建的对象绑定到名称Obj
。
您可以在一行中执行此操作:var Obj = {};
。分两步完成它没有任何实际优势,只有风险。
答案 6 :(得分:1)
var Obj;
这不是创建对象。它定义了一个变量;
首先创建对象,然后初始化对象,这是两个关键进程,它们都是拥有对象所必需的。
答案 7 :(得分:1)
此行实际上并不创建对象。相反,它会创建一个变量(或者如果你把一个物体放在那里就可以容纳一个物体)。
var Obj;
这一行确实创建了一个对象,并将其放入变量中。
Obj = {};
此行通过创建属性并将其设置为某个属性来“初始化”对象。
Obj.Something = null;
答案 8 :(得分:1)
注意说
var Obj;
你不是创建对象,只是定义一个(在本地函数范围内)变量最初设置为null
除此之外,将它合并到一个陈述中没有区别。
答案 9 :(得分:0)
如果这是你所拥有的所有代码,那么它之间绝对没有区别:
var Obj;
Obj = {};
和此:
var Obj = {};
如果这是您获得的所有代码,则修改Obj
变量之间没有任何内容。事实上,我认为第二种做法比上面两行更快。