console.log takes an unspecified number of arguments and dumps their content in a single line.
Is there a way I can write a function that passes arguments passed to it directly to console.log to maintain that behaviour? For example:
function log(){ if(console){ /* code here */ } } This would not be the same as:
function log(){ if(console){ console.log(arguments); } } Since arguments is an array and console.log will dump the contents of that array. Nor will it be the same as:
function log(){ if(console){ for(i=0;i<arguments.length;console.log(arguments[i]),i++); } } Since that will print everything in different lines. The point is to maintain console.log's behaviour, but through a proxy function log.
+---
I was looking for a solution I could apply to all functions in the future (create a proxy for a function keeping the handling of arguments intact). If that can't be done however, I'll accept a console.log specific answer.
This should do it ..
function log() { if(typeof(console) !== 'undefined') { console.log.apply(console, arguments); } } Just adding another option (using the spread operator and the rest parameters - although arguments could be used directly with the spread)
function log(...args) { if(typeof(console) !== 'undefined') { console.log(...args); } }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With