2017-06-16 2 views
2

Ich habe einfaches Objekt, das ich in der Konsole angezeigt werden sollJavascript ES6 console.log mit Vorlage Objektwertliterals

var obj = { name: 'John', age: 22 } 

Wenn ich tippe:

console.log(obj) 

Objekt {name: "John", dem Alter : 22}

Wenn ich tippe:

console.log('my object is: ' + obj) 

mein Objekt ist: [object Object]

console.log('my object is: %o', obj) 

mein Objekt ist: Object {name: "John", Alter: 22}

Wie kann ich dies mit einer Vorlage wörtlichen erreichen?

Wenn ich tippe:

console.log(`my object is: ${obj}`) 

mein Objekt ist: [object Object]

+1

kann auch einfach einmal: 'console.log ('mein Ziel ist:' obj);'. Vorlagen selbst sind nicht schlau daran, eine String-Repräsentation eines Objekts zu erstellen, so dass Sie die gewünschte Ausgabe nicht rein aus einem Vorlagenliteral erhalten können. Sie rufen nur die Standard-String-Konvertierung auf, die hier nicht gewünscht ist. Sie müssen die gewünschte Zeichenfolgendarstellung selbst vornehmen und diese an das Literal übergeben. – jfriend00

Antwort

8

Sie könnten das Objekt mit JSON.stringify serialisiert.

var obj = { name: 'John', age: 22 }; 
 
console.log(`my object is: ${JSON.stringify(obj)}`);

0

var obj = { name: 'John', age: 22 } 
 
log`This is obj: ${obj}` 
 

 
function log(strings, ...values) { 
 
    console.log(strings.reduce((p, c, i) => 
 
     `${p}${c}${values[i]?JSON.stringify(values[i]):''}`, '')); 
 
}