console.log如何处理打印字符串和对象?

时间:2015-09-21 21:48:00

标签: javascript console.log

我正在尝试实现自己的console.log之类的东西,并且能够执行以下操作非常方便:console.log('something',obj)并将其打印出来。

我想重新创建此功能,但首先我必须理解它。

那么console.log如何做到这一点?

我有这样的事情:

save : function(level, userId, message){

        //handles objects
        for(var i=2;i<arguments.length;i++){
            switch(typeof arguments[i]){
                case 'object':
                    message += ' ' + JSON.stringify(arguments[i]);
                break;
                case 'string':
                    message += arguments[i];
                break;
                case 'number':
                    message += arguments[i].toString();
                break;
            }
        }

我正在寻找message之后的所有其他参数,然后评估他们转换它们的内容,然后将它们附加到message

目标是能够做到     logger.save('info', ,'Started app',config.env, config.port, config.etc)
 并让它智能地处理所有这些对象。

2 个答案:

答案 0 :(得分:1)

我不确定console.log的实现,但是你想查看arguments对象:

function myConsoleLog() {
    for (var arg in arguments) {
        console.log(arguments[arg]);
    }
}

myConsoleLog(1, 2, 3);
myConsoleLog({}, "hello");
// etc.

答案 1 :(得分:1)

你正在寻找arguments(这就像数组一样)。

function test () {
    var log = '';
    for (var i = 0; i < arguments.length; i++) {
        log += arguments[i] + ',';
    }
    console.log(log.substring(0, log.length - 1));
}

test(1); // 1
test(1,2,3,4) //1,2,3,4