我在网站上看过以下代码...... 这是什么意思?。我可以使用formatName:value格式声明变量而不是variableName = value。
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 }; }
答案 0 :(得分:2)
这些是对象litteral中的对象属性。
空对象:
var obj = {};
使用属性:
var obj = {
foo: "bar",
test: 123
};
然后您可以这样访问属性:
alert(obj.foo);
请注意,此表示法仅适用于对象litterals。如果要从外部设置属性,也请使用点符号:
obj.foo = "hi";
答案 1 :(得分:1)
答案 2 :(得分:1)
该行:
if (!window.Node){
表示如果Node
变量尚不存在,则执行以下操作:
Node
初始化为object literal(基本上是哈希表)。例如:
Node['ENTITY_NODE']
等于6。
这也可以表示为Node.ENTITY_NODE
。
答案 3 :(得分:1)
variableName: value
格式用于静态声明对象的javascript属性。在您的示例中,Node
是一个新对象,它们为它声明了12个属性。您也可以为属性声明执行此操作,但属性声明与变量声明不完全相同。
此代码的含义是:“如果window.Node
尚不存在,则将其声明为具有这12个属性的对象”。
然后可以这样访问:
Node.ELEMENT_NODE == 1
此代码的实际目的是确保这些节点值在给定的Web应用程序中声明一次且仅一次,以便相关代码可以使用有意义的符号名称而不是仅仅与数字进行比较来使用它们。 / p>