Я смущен относительно разницы между window.location
и location.href
. Оба они действуют так же.
В чем разница?
Я смущен относительно разницы между window.location
и location.href
. Оба они действуют так же.
В чем разница?
window.location
- это объект, который содержит всю информацию о текущем местоположении документа (хост, href, порт, протокол и т.д.).
location.href
является сокращением для window.location.href(вы вызываете местоположение из глобального объекта-окна, так что это window.location.href), и это только строка с полным URL-адресом текущего веб-сайта.
Они действуют одинаково, когда вы назначаете им URL-адрес - они перенаправляются на страницу, которую вы назначили, но вы можете видеть различия между ними при открытии консоли браузера (firebug или инструментах разработчика) и писать window.location
и location.href
.
Они разные. window.location
является объектом, содержащим свойство href
, которое является строкой .
Настройка window.location
и window.location.href
ведет себя так же, как вы заметили, потому что она давно была встроена в язык JavaScript. Подробнее в этом вопросе о настройке window.location.
Получение window.location
и window.location.href
ведет себя по-другому, потому что первое является объектом, а второе - строкой. Если вы выполняете строковые функции, такие как indexOf()
или toLowerCase()
, вы должны использовать window.location.href
.
window.location
имеет другие свойства кроме href
, но если вы назначаете window.location
URL-адрес, он будет перенаправлен.
Вы можете увидеть все его свойства в MDN (например, search
, protocol
, hash
,...)
Отметьте эту старую статью MDN:
У объектов местоположения есть метод toString, возвращающий текущий URL. Вы также можете назначить строку для window.location. Это означает, что вы можете работать с window.location, как если бы это была строка в большинстве случаев. Иногда, например, когда вам нужно вызвать метод String на нем, вы должны явно вызвать toString:
window
- это всего лишь глобальный объект, в котором находятся несколько свойств, один из которых location
. location
также имеет свойства, один из которых href
. location.href
- это просто window.location.href
location.href
возвращает весь URL текущей страницы.
window.location
свойство представляет собой точное местоположение объекта окна, если вы измените его, вы получите перенаправление.
Вы получаете доступ к одному и тому же объекту.. Это своего рода ярлык. Если вы используете firebug (или подобное) для изменения своего свойства hash, вы увидите, что он изменяется в обоих местах.
Технически ваша область по умолчанию - это оконный объект, поэтому, когда вы получаете доступ к "location.href", вы получаете доступ к окну .location.href.