Pregunta

Al ejecutar:

window.toString.call("")

todo está bien en FF / CH pero en IE8 se obtiene un error de script. Investigando un poco más se vio después, que window.toString.call no está definido en IE8?

También puede ejecutar la siguiente:

window.toString instanceof Function;
// false

alert(window.toString);
// function toString() {
//    [native code]
// }

¿Por qué es y cómo se puede solucionar? Y empecé a preguntarme cómo es que funciona jQuery en el primer lugar?

¿Fue útil?

Solución

window es un objeto de host, y el ECMAScript Language Specification (tercera edición ) no requiere objetos huésped que se procede del objeto Object nativo. En IE (y probablemente en algunos otros navegadores) objetos host no son, por lo que no son compatibles con cualquiera de los métodos o propiedades nativas (aunque pueden tener métodos o propiedades con los mismos nombres que los métodos nativos o propiedades que son accesibles a guiones).

Si lo que desea es hacerse con el método toString nativa por defecto de la aplicación lenguaje, entonces debería usar Object.prototype.toString.call("").

Otros consejos

NickFitz es correcta, el método toString en el objeto host que se está encontrando es puramente de manera que si lo hiciera

alerta (ventana);

que se obtendría el texto [objeto]

Todo lo que el método toString () de JavaScript usado en sus ejemplos se acheive es hacer una cadena de una cadena por lo que la forma correcta de hacer lo que está tratando es;

var a =new String ("");

o simplemente

var b = "";

o si realmente quiere ser tonto;

var b = "".toString();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top