2011-03-17 43 views
1

如果我得到document.getElementById()元素,的Javascript:属性在元请求

没有JavaScript的拉所有属性的元素我赋给变量object,或之后就在我的例子提出要求:object.id

var object = document.getElementById("object"); 

object.id; 
object.value; 

回答

3

它并不真正“拉”任何东西。浏览器为JavaScript解释器提供了一个对象的引用,该引用以每个浏览器特有的方式实质上是是DOM元素的。在DOM元素上访问属性相当便宜,但修改属性可能会产生明显的副作用(当然,这通常是您为什么要从JavaScript修改属性的原因)。

3

都没有。变量object只是对已经存在的对象的引用。

2

object是对象本身的引用。它不拉/复制任何值。

你甚至可以尝试通过修改一个引用的对象(例如在这里工作的SO):

> var object = document.getElementById("hlogo") 
> object.id 
"hlogo" 
> document.getElementById("hlogo").id = "foobar" 
"foobar" 
> document.getElementById("hlogo").id 
TypeError: Cannot read property 'id' of null 
> object.id 
"foobar"