2017-06-16 94 views
2

我有,我想如果我輸入控制檯的Javascript ES6 CONSOLE.LOG反對使用模板文字

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

顯示簡單對象:

console.log(obj) 

對象{名字: 「約翰」,年齡:22}

如果I型:

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

我的目標是:[對象的對象]

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

我的目標是:對象{名字: 「約翰」,年齡:22}

我怎樣才能做到這一點使用模板文字?

如果鍵入:

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

我的目標是:[對象的對象]

+1

也可以這樣做:'的console.log( '我的目標是:',OBJ);'。模板本身對於創建對象的字符串表示並不聰明,因此您無法純粹從模板文本中獲得所需的輸出。他們只是調用默認的字符串轉換,這不是你想要的。你將不得不自己做所需的字符串表示並將其傳遞給文字。 – jfriend00

回答

8

您可以用JSON.stringify序列化對象。

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]):''}`, '')); 
 
}