uso example ejemplos change javascript

example - Javascript: Configuración de location.href versus location



window location href login (6)

¿Cuándo establecería la location en una cadena de URL en location.href establecer location.href ?

location = "http://www.stackoverflow.com";

vs

location.href = "http://www.stackoverflow.com";

Referencia de la red de desarrolladores de Mozilla


Como ya se ha dicho, la location es un objeto . Pero esa persona sugirió usar cualquiera de los dos. Pero, harás mejor en usar la versión .href .

Los objetos tienen propiedades predeterminadas que, si no se especifica nada más, se suponen. En el caso del objeto de location , tiene una propiedad llamada .href . Y al no especificar CUALQUIER propiedad durante la asignación, asumirá "href" de forma predeterminada.

Todo esto está bien hasta que una versión posterior del modelo de objeto cambie y ya no haya una propiedad predeterminada o se cambie la propiedad predeterminada. Entonces su programa se rompe inesperadamente.

Si te refieres a href , deberías especificar href .


Hace un par de años, la location no me funcionaba en IE y location.href (y ambas funcionaban en otros navegadores). Desde entonces, siempre he usado location.href y nunca más tuve problemas. No puedo recordar qué versión de IE era.


Incluso si ambos funcionan, yo usaría este último. location es un objeto, y asignar una cadena a un objeto no es un buen augurio para facilitar la lectura o el mantenimiento.


Puede establecer la location directamente porque es un poco más corto. Si está tratando de ser conciso, generalmente puede omitir la window. también.

Las asignaciones de URL a location.href y location están definidas para funcionar en JavaScript 1.0, en Netscape 2, y se han implementado en todos los navegadores desde entonces. Así que haz tu elección y utiliza lo que encuentres más claro.


Solo para aclarar, no puede hacer location.split(''#'') , la location es un objeto, no una cadena. Pero puede hacer location.href.split(''#''); porque location.href es una cadena.


Una diferencia a tener en cuenta, sin embargo.

Digamos que quieres construir una URL usando la URL actual. De hecho, el siguiente código lo redirigirá, porque no está llamando a String.replace sino a Location.replace :

nextUrl = window.location.replace(''/step1'', ''/step2'');

Los siguientes códigos funcionan:

// cast to string nextUrl = (window.location+'''').replace(''/step1'', ''/step2''); // href property nextUrl = window.location.href.replace(''/step1'', ''/step2'');