【问题标题】:Variable declaration methods in JavascriptJavascript中的变量声明方法
【发布时间】:2012-01-12 19:02:53
【问题描述】:

我在一个网站上看到过以下代码... 这是什么意思?。我可以用 variableName : value 而不是 variableName = value 的格式声明变量。

如果(!window.Node){ 变量节点 = { ELEMENT_NODE:1, 属性节点:2, 文本节点:3, CDATA_SECTION_NODE:4, ENTITY_REFERENCE_NODE:5, 实体节点:6, PROCESSING_INSTRUCTION_NODE:7, COMMENT_NODE:8, DOCUMENT_NODE:9, DOCUMENT_TYPE_NODE:10, DOCUMENT_FRAGMENT_NODE:11, NOTATION_NODE : 12 }; }

【问题讨论】:

    标签: javascript variables methods declaration


    【解决方案1】:

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

    空对象文字:

    var obj = {};
    

    带属性:

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

    然后您可以通过这种方式访问​​属性:

    alert(obj.foo);
    

    请注意,此符号仅适用于对象文字。如果你想从外部设置属性,也可以使用点符号:

    obj.foo = "hi";
    

    【讨论】:

      【解决方案2】:

      它是一个对象字面量。

      跟随一些教程,你会明白更多.. 这是一个小教程

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

      【讨论】:

      • 当我们定义类时,我们使用这个关键字后跟属性名称。我可以在那里使用文字符号
      • 如果您尝试访问的对象被定义为文字,那么您可以使用 obj.propName ,看看 Xeon06 的答案,他给出了一个简短的.. 花一些时间在 GOOGLE 之前在这里发问题,你不会有这样的疑问..
      【解决方案3】:

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

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

      然后可以像这样访问它:

      Node.ELEMENT_NODE == 1
      

      此代码的实际目的是确保这些节点值在给定的 Web 应用程序中仅声明一次,以便相关代码可以使用有意义的符号名称来使用它们,而不仅仅是与数字进行比较。

      【讨论】:

        【解决方案4】:

        行:

        if (!window.Node){
        

        意思是,如果Node 变量还不存在,则执行以下操作:

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

        Node['ENTITY_NODE'] 等于 6。

        这也可以表示为Node.ENTITY_NODE

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多