2012-01-12 93 views
0

我在网站中看到了以下代码... 这意味着什么?我可以用variableName:value格式声明变量,而不是variableName = value。Javascript中的变量声明方法

 


    if (!window.Node){ 
     var Node = 
     { 
     ELEMENT_NODE    : 1, 
     ATTRIBUTE_NODE    : 2, 
     TEXT_NODE     : 3, 
     CDATA_SECTION_NODE   : 4, 
     ENTITY_REFERENCE_NODE  : 5, 
     ENTITY_NODE     : 6, 
     PROCESSING_INSTRUCTION_NODE : 7, 
     COMMENT_NODE    : 8, 
     DOCUMENT_NODE    : 9, 
     DOCUMENT_TYPE_NODE   : 10, 
     DOCUMENT_FRAGMENT_NODE  : 11, 
     NOTATION_NODE    : 12 
    }; 
} 

回答

2

这些是对象属性中的对象属性。

空对象litteral:

var obj = {}; 

随着性能:

var obj = { 
    foo: "bar", 
    test: 123 
}; 

然后,您可以访问属性是这样的:

alert(obj.foo); 

注意,这个符号只适用对象litterals内。如果要设置外部属性,还可以使用点符号:

obj.foo = "hi"; 
1

其对象文字。

按照一些教程,你会明白更多.. 这里有一个小教程

http://www.dyn-web.com/tutorials/obj_lit.php

+0

当我们定义我们用这个关键字后跟属性name.Can我用的是文字符号有 – 2012-01-12 19:10:12

+0

类,如果对象TAT你试图访问被定义为一个文字,然后你可以使用'obj.propName',看看Xeon06的答案,他给了一个简要的..在Google上发布一段时间之前发布问题在这里,你不会有这样的疑虑.. – 2012-01-12 19:14:48

1

行:

if (!window.Node){ 

意味着,如果Node变量尚不存在,然后执行以下操作:

Node初始化为object literal(基本上是一个哈希表)。例如:

Node['ENTITY_NODE']等于6

这也可以,以及表示为Node.ENTITY_NODE

1

variableName: value格式是用于静态声明对象的javascript属性。在你的例子中,Node是一个新对象,它们为它声明了12个属性。你也可以为属性声明这样做,但属性声明与变量声明不完全相同。

此代码的含义是:“如果window.Node尚不存在,则将其声明为具有这12个属性的对象”。

然后它可以像这样访问:

Node.ELEMENT_NODE == 1 

这段代码的实际目的是为了确保这些节点值在给定的Web应用程序中声明一次且仅一次,使他们可以使用通过使用有意义的符号名称的相关代码而不是仅仅比较一个数字。