Javascript window.location和location.href之间的差异
我对Javascript window.location和location.href之间的差异,javascript,Javascript,我对window.location和location.href之间的区别感到困惑。两人的行为方式似乎相同 区别是什么?检查: Location对象具有返回当前URL的toString方法。还可以将字符串指定给window.location。这意味着在大多数情况下,您可以像处理字符串一样处理window.location。有时,例如,当需要对其调用String方法时,必须显式调用toString: window只是包含多个属性的全局对象,其中一个属性是location位置也有属性,其中一个是hre
window.location
和location.href
之间的区别感到困惑。两人的行为方式似乎相同
区别是什么?检查:
Location对象具有返回当前URL的toString方法。还可以将字符串指定给window.location。这意味着在大多数情况下,您可以像处理字符串一样处理window.location。有时,例如,当需要对其调用String方法时,必须显式调用toString:
window
只是包含多个属性的全局对象,其中一个属性是location
<代码>位置也有属性,其中一个是href
location.href
只是window.location.href
window。location
除了href
之外还有其他属性,但如果您分配window.location
一个URL,它将重定向
您可以在(如
search
,protocol
,hash
,…)窗口中看到它的所有属性。location
是一个包含当前文档位置(主机、href、端口、协议等)所有信息的对象
location.href
是window.location.href(您从全局对象-window调用location,因此这是window.location.href)的简写,并且这只是一个包含当前网站完整URL的字符串
当您为它们分配URL时,它们的行为相同-它们将重定向到您分配的页面,但当您打开浏览器控制台(firebug或开发人员工具)时,您可以看到它们之间的差异并编写
window.location
和location.href
location.href
属性返回当前页面的整个URL
何处为
窗口。location
属性表示窗口对象的当前位置,如果更改此属性,您将被重定向。您正在访问同一对象。这是某种快捷方式。如果您使用firebug(或类似工具)更改其“hash”属性,您将看到它在两个地方都发生了更改
从技术上讲,您的默认范围是窗口对象,因此当您访问“location.href”时,您访问的是window.location.href.它们是不同的<代码>窗口。位置是一个对象,包含属性
href
,该属性是一个字符串
设置window.location
和window.location.href
的行为方式与您注意到的相同,因为它很久以前就内置在JavaScript语言中。阅读更多这篇文章
获取window.location
和window.location.href
的行为不同,因为前者是对象,后者是字符串。如果运行字符串函数,如indexOf()
或toLowerCase()
,则必须使用window.location.href