替换console.log(),如何输入多个参数? (节点)
Replace console.log(), how to input multiple arguments? (NodeJS)
我想创建一个新函数来“替换”console.log()。基本上是一个 print() 函数,它允许您在文本的开头添加时间戳,还可以更改时间戳的颜色,然后是您要打印的文本。
示例:
colors = require('colors')
function debug_print(str) {
console.log(new String(Date().getTime().brightBlue + ": " + str)
}
它可以工作,但是它没有可以将多个参数放入函数调用的功能,或者您可以像 console.log 那样打印出一个对象:
myObject = {"hello": "hey"}
console.log("myObject", myObject); // <-- Works, prints out "myObject {'hello' : 'hey'}"
debug_print("myObject", myObject); // <-- Doesn't work
如何更改我的函数以允许多个参数并以与 console.log 相同的方式打印对象,所有这些都在一个打印行中?
您可以使用 arguments
对象。
In Javascript, arguments
is a local JavaScript object variable that is available in all non-arrow functions.
它是一个 Array-like 对象,包含所有传递的参数。
function my_function() {
// convert Arguments to a normal Array
var args = Array.from(arguments);
console.log.apply(console, args)
}
my_function(1, 2, "custom text") // 1, 2, "custom text"
因为你想在消息的开头添加一个文本,你可以简单地在数组的开头添加一个元素
args.unshift(timestamp + ": ");
您可以在定义函数参数时使用 spread
运算符。你不应该使用参数本身(除非你真的知道你在做什么)。
function debug_print(...msg) {
console.log('whatever: ', ...msg);
}
我想创建一个新函数来“替换”console.log()。基本上是一个 print() 函数,它允许您在文本的开头添加时间戳,还可以更改时间戳的颜色,然后是您要打印的文本。
示例:
colors = require('colors')
function debug_print(str) {
console.log(new String(Date().getTime().brightBlue + ": " + str)
}
它可以工作,但是它没有可以将多个参数放入函数调用的功能,或者您可以像 console.log 那样打印出一个对象:
myObject = {"hello": "hey"}
console.log("myObject", myObject); // <-- Works, prints out "myObject {'hello' : 'hey'}"
debug_print("myObject", myObject); // <-- Doesn't work
如何更改我的函数以允许多个参数并以与 console.log 相同的方式打印对象,所有这些都在一个打印行中?
您可以使用 arguments
对象。
In Javascript,
arguments
is a local JavaScript object variable that is available in all non-arrow functions.
它是一个 Array-like 对象,包含所有传递的参数。
function my_function() {
// convert Arguments to a normal Array
var args = Array.from(arguments);
console.log.apply(console, args)
}
my_function(1, 2, "custom text") // 1, 2, "custom text"
因为你想在消息的开头添加一个文本,你可以简单地在数组的开头添加一个元素
args.unshift(timestamp + ": ");
您可以在定义函数参数时使用 spread
运算符。你不应该使用参数本身(除非你真的知道你在做什么)。
function debug_print(...msg) {
console.log('whatever: ', ...msg);
}