繁体   English   中英

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

[英]How does console.log handle printing strings and objects?

我正在尝试实现自己的类似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)
并使其智能地处理所有这些对象。

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

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

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

您在寻找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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM