Estaba intentando hacer que mi código fuera más pequeño con las funciones de caché en las variables. Por ejemplo:"el objeto no es una función" cuando se guarda function.call en una variable
function test(){
var a = Array.prototype.slice,
b = a.call(arguments);
// Do something
setTimeout(function(){
var c = a.call(arguments);
// Do something else
}, 200);
}
Así que en lugar de llamar Array.prototype.slice.call(arguments)
, puedo hacer a.call(arguments);
.
Estaba tratando de hacer esto aún más pequeño al almacenar en caché Array.prototype.slice.call
, pero eso no estaba funcionando.
function test(){
var a = Array.prototype.slice.call,
b = a(arguments);
// Do something
setTimeout(function(){
var c = a(arguments);
// Do something else
}, 200);
}
Esto me da TypeError: object is not a function
. ¿Porqué es eso?
typeof Array.prototype.slice.call
devuelve "function"
, como se esperaba.
¿Por qué no puedo guardar .call
en una variable (y luego llamarla)?
que motor de JavaScript le ha dado este error? –
posible duplicado de [¿Cómo hace referencia a Array.prototype.slice.call()?] (Http://stackoverflow.com/questions/6835315/how-do-you-reference-array-prototype-slice-call) – pimvdb
@DanD .: Chrome 16. –