Javascript 如何使用消息正确抽象console.log颜色变量

Javascript 如何使用消息正确抽象console.log颜色变量,javascript,object,console,abstraction,console.log,Javascript,Object,Console,Abstraction,Console.log,我想将console.log()消息抽象为一个变量。代码如下: 我正在使用console.log颜色消息 console.log("%c Scenario 1.0:" + "%c [street number] + [direction] + [street name] + [suffix] + anything else", console.colors.bold.yellow, console.colors.white); 导致 场景1.0:(粗体和黄色) [街道编号]+[方向]+[街道名

我想将console.log()消息抽象为一个变量。代码如下:

我正在使用console.log颜色消息

console.log("%c Scenario 1.0:" + "%c [street number] + [direction] + [street name] + [suffix] + anything else", console.colors.bold.yellow, console.colors.white);
导致

场景1.0:(粗体和黄色)

[街道编号]+[方向]+[街道名称]+[后缀]+任何其他内容(普通和白色)

这一切都很好。问题是我想将消息和颜色从console.log()中抽象出来,并转换成一个变量名,这样我就可以将变量放在里面,如下所示

console.log(scenario.case1_0)
但是console.log颜色和消息中断。它不能输出正确的信息或颜色。我如何正确地提取这个

打开浏览器控制台查看JSbin:
传递到日志的颜色必须是两个独立的参数,而不是单个字符串

var caseConsoleLogColors = "console.colors.bold.yellow, console.colors.white";
应成为:

var caseConsoleLogColors = [console.colors.bold.yellow, console.colors.white];
然后将消息和颜色组合成一个参数数组,如下所示:

var message = ["%c Scenario 1.0:" + "%c [street number] + [direction] + [street name] + [suffix] + anything else"]  
var args = message.concat(caseConsoleLogColors);
使用apply函数使用参数数组调用console.log:

console.log.apply(console, args);
将上下文指定为控制台非常重要,否则会出现错误

对于从scenario对象获取字符串的第二个示例,只需使用scenario对象存储不同的消息,但此时不要尝试连接消息字符串和颜色:

var scenario = {
    case1: "%c Scenario 1.0:" + "%c [street number] + [direction] + [street name] + [suffix] + anything else"
然后从scenario对象访问消息,为其创建一个数组,并将颜色数组导入其中:

var message = [scenario.case1]
var args = message.concat(caseConsoleLogColors);
console.log.apply(console, args);   

传递到日志的颜色需要是两个独立的参数,而不是单个字符串

var caseConsoleLogColors = "console.colors.bold.yellow, console.colors.white";
应成为:

var caseConsoleLogColors = [console.colors.bold.yellow, console.colors.white];
然后将消息和颜色组合成一个参数数组,如下所示:

var message = ["%c Scenario 1.0:" + "%c [street number] + [direction] + [street name] + [suffix] + anything else"]  
var args = message.concat(caseConsoleLogColors);
使用apply函数使用参数数组调用console.log:

console.log.apply(console, args);
将上下文指定为控制台非常重要,否则会出现错误

对于从scenario对象获取字符串的第二个示例,只需使用scenario对象存储不同的消息,但此时不要尝试连接消息字符串和颜色:

var scenario = {
    case1: "%c Scenario 1.0:" + "%c [street number] + [direction] + [street name] + [suffix] + anything else"
然后从scenario对象访问消息,为其创建一个数组,并将颜色数组导入其中:

var message = [scenario.case1]
var args = message.concat(caseConsoleLogColors);
console.log.apply(console, args);   

谢谢,我将尝试一下,看看它如何运行并很快更新。谢谢,我将尝试一下,看看它如何运行并很快更新。