console.log
toma un número no especificado de argumentos y vuelca su contenido en una sola línea.Pase los argumentos a console.log como argumentos de primera clase a través de la función de proxy
¿Existe alguna forma de que pueda escribir una función que pase los argumentos pasados directamente al console.log
para mantener ese comportamiento? Por ejemplo:
function log(){
if(console){
/* code here */
}
}
Este no sería el mismo que:
function log(){
if(console){
console.log(arguments);
}
}
Desde arguments
es una matriz y console.log
se volcar el contenido de la matriz. Tampoco será lo mismo que:
function log(){
if(console){
for(i=0;i<arguments.length;console.log(arguments[i]),i++);
}
}
Dado que eso imprimirá todo en líneas diferentes. El punto es mantener el comportamiento de console.log
, pero a través de una función proxy log
.
+ ---
que estaba buscando una solución que pudiera aplicarse a todas las funciones en el futuro (crear un proxy para una función de mantenimiento de la manipulación de argumentos intactas). Sin embargo, si eso no se puede hacer, aceptaré una respuesta específica de console.log
.
Esto no funciona en Chrome/Safari. Lanza un error de "Invocación ilegal". – aditya
@aditya, código actualizado ... no estaba usando el contexto correcto ... necesita pasar 'console' como el argumento' this' para aplicar .. –
Awesome. Eso funciono. ¡Gracias! – aditya