是一个传递给函数的元素是字符串还是对象?

时间:2011-08-24 22:04:25

标签: javascript oop function

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

我知道这是一个愚蠢的问题,但任何帮助都会受到赞赏。

4 个答案:

答案 0 :(得分:1)

getElementById()的结果是一个对象

答案 1 :(得分:1)

它将作为对象传递

答案 2 :(得分:1)

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

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

答案 3 :(得分:1)

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

typeof document.getElementById("someAnchorId") // -> "object"

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

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