La aplicación y la llamada de Function.prototype solo se agregaron en ECMA262 Edition3 lanzada en 1999 (ECMA262 Edition2 se lanzó en 1998). En navegadores anteriores como IE5.01 (JScript 5.0), no hay aplicación ni llamada. Esto causará algunos problemas de compatibilidad. Aquí están las soluciones:
Copie el código de código de la siguiente manera:
si(!Función.prototipo.aplicar){
Función.prototipo.aplicar = función(obj, argumentos){
obj = obj == ventana indefinida: Object(obj);//obj puede ser un tipo básico js
var i = 0, aria = [], cadena;
si(argumentos){
for( len=args.length; i<len; i++ ){
ary[i] = "argumentos[" + i + "]";
}
}
obj._apply = esto;
str = 'obj._apply(' + ary.join(',') + ')';
intentar{
devolver evaluación(cadena);
}captura(e){
}finalmente{
eliminar obj._apply;
}
};
}
if(!Función.prototipo.llamada){
Función.prototipo.llamada = función(obj){
var i = 1, argumentos = [];
for( len=argumentos.longitud; i<len; i++ ){
argumentos[i-1] = argumentos[i];
}
devolver this.apply(obj, args);
};
}