在网络上,我看到大量 JavaScript 程序员在编写window.location
而不仅仅是location
。我很好奇是否有人可以解释原因。window
是全局对象,因此没有必要包含——不是吗?我的意思是,你看不到人们写window.Math.floor
or new window.Date()
,所以我很好奇为什么它会被指定为location
.
我明白那个location
被认为是您所在窗口的“属性”,我认为这是有道理的。但即便如此,我看不出有任何理由指定全局对象;不可能覆盖location
首先,不是没有重定向页面。
那么,这只是一个已经使用了很长时间的怪癖,以至于它已经与我们编写 JavaScript 的方式集成在一起了,还是有一些切实的理由这样做?我查了谷歌,但可惜,我什么也没想到......
我总是用window.location
在我的代码中有两个主要原因:
- 尽可能避免使用全局变量是一个好习惯。使用
window.
前缀提醒我该变量是全局的,而其他变量不是。
- Javascript 作用域的本质允许您覆盖作用域树上层设置的变量。这意味着您可以设置
var location
在包含范围内的某个地方(这不是一个不太可能用作变量名的词),而您将致力于此。
对我来说,编码时目标明确非常重要,因为它可以帮助我避免编写错误,然后帮助我在编写错误时找到它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)