【问题标题】:Is an element that's passed into a function a string or an object?传递给函数的元素是字符串还是对象?
【发布时间】:2011-08-24 22:04:24
【问题描述】:

如果我执行getElementById() 之类的操作来获取锚链接,然后将该变量传递给另一个函数,这是作为字符串还是对象传递?

我知道这是一个愚蠢的问题,但我们将不胜感激。

【问题讨论】:

    标签: javascript oop function


    【解决方案1】:

    getElementById() 的结果是一个对象

    【讨论】:

    • 所以字符串可能类似于类名或 ID 名,但是当我在 DOM 中获得一个元素后,它始终是一个对象,对吗?
    • 正确(如果我理解你的问题)--
    【解决方案2】:

    会作为对象传入

    【讨论】:

      【解决方案3】:

      一个对象。您将能够访问该 <a> 标记的属性。

      foo(document.getElementById('someID'));
      function foo(element) {
          alert(element.href)
          alert(element.innerHTML);
      }
      

      【讨论】:

        【解决方案4】:

        getElementById 返回一个 DOM 元素。当您将其存储在变量中或将其作为参数传递给函数时,其类型不会改变。

        typeof document.getElementById("someAnchorId") // -> "object"
        
        document.getElementById("someAnchorId").constructor // -> "HTMLAnchorElement() [...]"
        

        有时您对待变量的方式会意外地将其转换为字符串。例如,如果你将它附加到一个字符串,JavaScript 会自动 .toString() 你的对象。也许这种行为就是您遇到的情况。

        【讨论】:

          猜你喜欢
          • 2016-06-11
          • 2017-03-04
          • 2013-09-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-08-03
          相关资源
          最近更新 更多