veces puede que tenga una biblioteca que modifica window.location y que desea permitir que funcione normalmente pero también ser probado. Si este es el caso, puede usar un cierre para pasar la referencia deseada a su biblioteca, como esta.
/* in mylib.js */
(function(view){
view.location.href = "foo";
}(self || window));
Luego, en su prueba, antes de incluir su biblioteca, puede volver a definir uno mismo a nivel mundial, y la biblioteca se utilice el mismo simulacro como la vista.
var self = {
location: { href: location.href }
};
En su biblioteca, también se puede hacer algo como lo siguiente, por lo que puede redefinir el auto en cualquier momento de la prueba:
/* in mylib.js */
var mylib = (function(href) {
function go (href) {
var view = self || window;
view.location.href = href;
}
return {go: go}
}());
En la mayoría si no todos los navegadores modernos, auto ya está una referencia a la ventana por defecto. En las plataformas que implementan la API de trabajador, dentro de un Yo trabajador es una referencia al alcance global. En tanto Node.js auto y la ventana no están definidos, por lo que si lo desea, también puede hacer esto:
self || window || global
esto puede cambiar si Node.js realmente implementan la API Trabajador.
I que tiene el mismo problema cuando quiero llamar a una función dentro de la con. ¿Cómo lo resuelves? – wizztjh