window.location 与 just location

2024-01-08

在网络上,我看到大量 JavaScript 程序员在编写window.location而不仅仅是location。我很好奇是否有人可以解释原因。window是全局对象,因此没有必要包含——不是吗?我的意思是,你看不到人们写window.Math.floor or new window.Date(),所以我很好奇为什么它会被指定为location.

我明白那个location被认为是您所在窗口的“属性”,我认为这是有道理的。但即便如此,我看不出有任何理由指定全局对象;不可能覆盖location首先,不是没有重定向页面。

那么,这只是一个已经使用了很长时间的怪癖,以至于它已经与我们编写 JavaScript 的方式集成在一起了,还是有一些切实的理由这样做?我查了谷歌,但可惜,我什么也没想到......


我总是用window.location在我的代码中有两个主要原因:

  1. 尽可能避免使用全局变量是一个好习惯。使用window.前缀提醒我该变量是全局的,而其他变量不是。
  2. Javascript 作用域的本质允许您覆盖作用域树上层设置的变量。这意味着您可以设置var location在包含范围内的某个地方(这不是一个不太可能用作变量名的词),而您将致力于此。

对我来说,编码时目标明确非常重要,因为它可以帮助我避免编写错误,然后帮助我在编写错误时找到它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

window.location 与 just location 的相关文章

随机推荐

  • htaccess 密码保护,但不在本地主机上

    我已经建立了一个开发网站 并希望对其进行密码保护 以便只有经过验证的访问者才能查看该网站 一切都很好 我很恼火 在我的本地版本上输入我的用户名和密码 那么 在不更改本地副本和开发站点上的 htaccess 文件之间的情况下 如何使用密码保护
  • 节点获取仅返回待处理的承诺

    我正在尝试node fetch我得到的唯一结果是 Promise
  • `-rdynamic` 到底有什么作用以及什么时候需要它?

    到底是做什么的 rdynamic or export dynamic在链接器级别 做什么以及它如何与定义的符号可见性相关 fvisibility 标志或可见性pragmas and attribute s For export dynami
  • 如何从Windows应用程序内存中读取一些数据?

    我有一个应用程序 它向我显示一些数据 我需要附加到这个应用程序的进程 在内存中找到我需要的数据 实际上是一个数字 并将其保存在某个地方 该应用程序似乎没有使用标准的 Windows 控件 因此事情不会像使用 AutoIt 或类似的东西读取控
  • 动态生成Linq Select

    我有一个数据库 用户可以在其上运行各种计算 计算在 4 个不同的列上运行 每个计算不一定使用每个列 即 calculation1 可能会变成 sql 之类 SELECT SUM Column1 FROM TABLE WHERE Column
  • 如何使用 Ruamel.yaml 在某些数据之前添加空行

    我似乎无法弄清楚如何使用 Ruamel yaml 在数据之间添加空行 假设我有数据 a 1 b 2 我需要添加到此 以便我将 a 1 b 2 c 3 据我所知 空行是作为 CommentToken 实现的 Comment comment N
  • IE 权限被拒绝

    我在 IE 上收到权限被拒绝的错误 firefox 工作正常 我正在进行 ajax 调用 本地域 并将调用结果分配给 div 在调试时 我发现 ajax 调用没有问题 并且变量 结果 具有结果数据 将数据分配给 div 时会引发错误 Err
  • pageshow/pagehide 事件未触发

    我碰到pageshow pagehide事件 但我不太确定它们是如何工作的 我将它们注册在document 以及稍后window反对 但他们从未开枪 我预计它们会在页面加载后触发pageshow 当我转到其他页面时pagehide 但这从未
  • 如何更改 Angular Material CdkDroplist 行为以模拟“自由”放置区?

    目标是创建一个全宽拖放区 我可以在其中放置 小部件 并在放置区周围自由拖动它们 但不同的是 我还可以删除列表小部件 其中我也可以删除其他小部件 所以我有这个堆栈闪电战 https stackblitz com edit angular fr
  • Android 版 Google plus:凭据无效

    我使用以下代码来获取访问令牌 在连接到 Google 后 获取个人资料信息和电子邮件 String sAccessToken GoogleAuthUtil getToken this mPlusClient getAccountName o
  • Web 表单脚手架而不是 MVC

    可以使用 Web 表单代码搭建脚手架吗 thanks ASP NET 动态数据 http www asp net dynamicdata是一个应该与 Web 表单和 MVC 一起使用的脚手架解决方案
  • C# 中浮点和双精度数据类型的实际范围是多少?

    我正在学习 C 并试图获得 C 中数据类型实际范围的逻辑视觉表示 我已经介绍了整数 现在介绍了浮点和双精度数据类型 8 位 1 字节 sbyte 128 到 127 8 位 1 字节 字节 0 到 255 16 位 2 字节 短 32 76
  • Safari 6 中未设置 Cookie

    晚上好 这个问题我已经问过几次了 没有得到答复 希望这次一切顺利 我使用 php 和 Facebook PHP SDK 开发 Facebook 应用程序已经有几年了 最近我一直在为 Safari 和 Facebook 的登录而烦恼 问题是
  • dc.js 带复选框的多选菜单

    我有一个数据集 其中包含 5 列 gt 国家 地区 ID 值和部门 我能够使用值和国家 地区在 dc js 中创建行图 其中国家 地区是我的维度 var rowChart dc rowChart rowChart d3 csv data c
  • g++ 错误:“malloc”未在此范围内声明

    我在 Fedora 下使用 g 编译 openGL 项目 其中包含以下行 textureImage GLubyte malloc sizeof GLubyte RESOURCE LENGTH 编译时 g 错误提示 error malloc
  • 修剪字符串中的最后一个字符

    我有一个字符串说 Hello world 我想做一个修剪或移除以取出 关世界但不关你好 Hello world TrimEnd 阅读更多 https msdn microsoft com en us library 64zz6w66 v v
  • JScrollPane 中的 JTable 具有可调整大小的 JFrame 固定大小?

    我有一个JTable里面的一个JScrollPane 我想让列在调整大小时保持固定 行保持相同的大小 并且有一个滚动条可以上下移动 但我无法让滚动条在垂直方向上以相同的方式工作 这是我的项目的图片 其中 Duke 的 y 轴完全正常 并且有
  • Haskell - Foldl 和 Foldr?

    之间的区别是foldl and foldr只是循环的方向 我认为他们所做的事情有所不同 而不仅仅是方向上的不同 如果您的函数不具有关联性 即 用括号括起表达式的方式很重要 则存在差异 例如 foldr 0 1 10 5 but foldl
  • java.lang.NoSuchMethodError: org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest

    我正在通过多部分过滤器处理文件上传 如下所述here http balusc blogspot com 2007 11 multipartfilter html 我创建了一个 WAR 文件并部署在 Weblogic 10 3 3 服务器上并
  • window.location 与 just location

    在网络上 我看到大量 JavaScript 程序员在编写window location而不仅仅是location 我很好奇是否有人可以解释原因 window是全局对象 因此没有必要包含 不是吗 我的意思是 你看不到人们写window Mat