2011-06-13 22 views
5

window.location es un objeto. Pero cuando ejecuta location.toString(), convierte el objeto al equivalente a location.href.¿Por qué location.toString() informa lo mismo que location.href?

Mi pregunta es ¿cómo? ¿Y puedo configurar objetos para un comportamiento similar?

+1

Todos los objetos tienen un método toString(). Puede anularlo cambiando la implementación del prototipo o la implementación de la instancia concreta. Debería ser más preciso en cuanto a lo que quiere hacer. – jjrdk

+0

Para complementar el comentario de @jjrdk: Para 'window.location', el método' toString() 'se implementa de tal manera que devuelve la propiedad' href'. – Tomalak

Respuesta

5

Puede agregar un método toString a su objeto que devuelve lo que desea. En ese caso href

por ejemplo:

var obj = { 
    href:'', 
    toString:function(){ 
    return this.href; 
    } 
}; 

obj.href = 'http://stackoverflow.com'; 
obj.toString(); 
Cuestiones relacionadas