views:

45

answers:

1

We can create a function p in the following code:

var p = function() { };
if (typeof(console) != 'undefined' && console.log) {
    p = function() { console.log(arguments); };
}

but the arguments are passed like an array to console.log, instead of passed one by one as in

console.log(arguments[0], arguments[1], arguments[2], ... 

Is there a way to expand the arguments and pass to console.log like the way above?

Note that if the original code were

var p = function() { };
if (typeof(console) != 'undefined' && console.log) {
    p = console.log;
}

then it works well on Firefox and IE 8 but not on Chrome.

+4  A: 

You can use Function.apply():

console.log.apply(console, arguments);
John Kugelman