【发布时间】:2011-08-24 22:04:24
【问题描述】:
如果我执行getElementById() 之类的操作来获取锚链接,然后将该变量传递给另一个函数,这是作为字符串还是对象传递?
我知道这是一个愚蠢的问题,但我们将不胜感激。
【问题讨论】:
标签: javascript oop function
如果我执行getElementById() 之类的操作来获取锚链接,然后将该变量传递给另一个函数,这是作为字符串还是对象传递?
我知道这是一个愚蠢的问题,但我们将不胜感激。
【问题讨论】:
标签: javascript oop function
getElementById() 的结果是一个对象
【讨论】:
会作为对象传入
【讨论】:
一个对象。您将能够访问该 <a> 标记的属性。
foo(document.getElementById('someID'));
function foo(element) {
alert(element.href)
alert(element.innerHTML);
}
【讨论】:
getElementById 返回一个 DOM 元素。当您将其存储在变量中或将其作为参数传递给函数时,其类型不会改变。
typeof document.getElementById("someAnchorId") // -> "object"
document.getElementById("someAnchorId").constructor // -> "HTMLAnchorElement() [...]"
有时您对待变量的方式会意外地将其转换为字符串。例如,如果你将它附加到一个字符串,JavaScript 会自动 .toString() 你的对象。也许这种行为就是您遇到的情况。
【讨论】: