就在今天,经过几年的 javascript 编程,我遇到了一些让我震惊的事情。浏览器为每个具有 id 的元素创建对象。对象的名称将与 id 匹配。
所以如果你有:
<div id ="box"></div>
你可以做:
alert(box); //[object HTMLDivElement]
无需先为该变量分配任何内容。请参阅演示。
这出于某种原因似乎在标准中,即使它在某些情况下可能会破坏代码。有一个开放的错误可以结束这种行为,但我现在更想摆脱它。
你们知道是否有办法禁用此功能(可能是严格模式)?我是否过于重视这一点?因为这显然是个坏主意。(是IE引入的,给大家一个提示)。
更新:似乎 FF 仅在怪癖模式下执行此操作。其他浏览器(如 IE6+ 和 Chrome)可以立即执行此操作。