Подтвердить что ты не робот

Разница между window.location и location.href

Я смущен относительно разницы между window.location и location.href. Оба они действуют так же.

В чем разница?

4b9b3361

Ответ 1

window.location - это объект, который содержит всю информацию о текущем местоположении документа (хост, href, порт, протокол и т.д.).

location.href является сокращением для window.location.href(вы вызываете местоположение из глобального объекта-окна, так что это window.location.href), и это только строка с полным URL-адресом текущего веб-сайта.

Они действуют одинаково, когда вы назначаете им URL-адрес - они перенаправляются на страницу, которую вы назначили, но вы можете видеть различия между ними при открытии консоли браузера (firebug или инструментах разработчика) и писать window.location и location.href.

Ответ 2

Они разные. window.location является объектом, содержащим свойство href, которое является строкой .

Настройка window.location и window.location.href ведет себя так же, как вы заметили, потому что она давно была встроена в язык JavaScript. Подробнее в этом вопросе о настройке window.location.

Получение window.location и window.location.href ведет себя по-другому, потому что первое является объектом, а второе - строкой. Если вы выполняете строковые функции, такие как indexOf() или toLowerCase(), вы должны использовать window.location.href.

Ответ 3

window.location имеет другие свойства кроме href, но если вы назначаете window.location URL-адрес, он будет перенаправлен.

Вы можете увидеть все его свойства в MDN (например, search, protocol, hash,...)

Ответ 4

Отметьте эту старую статью MDN:

У объектов местоположения есть метод toString, возвращающий текущий URL. Вы также можете назначить строку для window.location. Это означает, что вы можете работать с window.location, как если бы это была строка в большинстве случаев. Иногда, например, когда вам нужно вызвать метод String на нем, вы должны явно вызвать toString:

window - это всего лишь глобальный объект, в котором находятся несколько свойств, один из которых location. location также имеет свойства, один из которых href. location.href - это просто window.location.href

Ответ 5

Свойство

location.href возвращает весь URL текущей страницы.

Где как

window.location свойство представляет собой точное местоположение объекта окна, если вы измените его, вы получите перенаправление.

Ответ 6

Вы получаете доступ к одному и тому же объекту.. Это своего рода ярлык. Если вы используете firebug (или подобное) для изменения своего свойства hash, вы увидите, что он изменяется в обоих местах.

Технически ваша область по умолчанию - это оконный объект, поэтому, когда вы получаете доступ к "location.href", вы получаете доступ к окну .location.href.