创建一个对象并初始化一个对象 - 差异

时间:2011-04-08 14:20:10

标签: javascript

  ////Creating Object
    var Obj;

  // init Object
  Obj= {};
  1. 这些之间有什么区别 2?
  2. 是否有可能成为一个 单行?
  3. 使用这样的优点吗?

10 个答案:

答案 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变量之间没有任何内容。事实上,我认为第二种做法比上面两行更快。