console.log 如何处理打印字符串和对象?
How does console.log handle printing strings and objects?
我正在尝试实现我自己的 console.log-like 东西,并且能够做类似的事情非常方便: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 的实现,但您想查看参数对象:
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
我正在尝试实现我自己的 console.log-like 东西,并且能够做类似的事情非常方便: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 的实现,但您想查看参数对象:
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