我今天遇到了这个要点,作者在评论中提到
var log = document.getElementById('log');
是不必要的,因为在 Javascript 中您可以只使用它log
来访问 DOM 元素。在所有浏览器中都是这样吗?这种技术有名称/参考吗?
我今天遇到了这个要点,作者在评论中提到
var log = document.getElementById('log');
是不必要的,因为在 Javascript 中您可以只使用它log
来访问 DOM 元素。在所有浏览器中都是这样吗?这种技术有名称/参考吗?
在 Internet Explorer 下,ID 将成为全局变量,并可通过该名称在任何地方访问。
我认为这种“错误特征”是一件坏事。
我不记得它的所有特征和方面,我尽我所能试着假装它从未发生过。
简而言之:仅限 IE 的“功能”——最好忽略。阅读这篇文章了解更多详情。
令人惊讶的是,这实际上是在 HTML5 规范中,所以是的,它会起作用,不,它不是建议的遗留功能(至少现在 - 它曾经是 IE 唯一的技巧)。
您可以在此处阅读规范, http://www.whatwg.org/specs/web-apps/current-work/#named-access-on-the-window-object
我同意它实际上使命名空间变得混乱,并且冒昧地建议不要使用它 - 但它会并且确实适用于每个主要浏览器!
这是一个可疑的“功能”,不应该用于任何事情。它引入了全局状态和全局范围的变量,这是在任何应用程序中要避免的要点之一,更重要的是,它似乎只适用于 Internet Explorer 和某些版本的 Chrome。几乎可以肯定它的性能会降低,因为浏览器不仅必须访问 DOM,而且还必须查找log
预先命名的变量。
对于现代浏览器的新版本,它可能会工作,但旧版本不能很好地处理它。如果您希望您的网站在旧版浏览器中运行,请使用 document.getElementById。