2017-01-27 21 views
0

我有一個函數,它接受3個輸入:

let logger = (title, date, type) => { 
    switch(type) { 
     case 'start' || 'end': 
      console.log(`${title} loop ${type} time: ${date.type}`); 
      break; 
    } 
}; 


var startTime = new Date(); 
var endTime = new Date(); 
logger('tester', {start: startTime, end: endTime}, 'start'); 

我想做到這一點,而無需使用一個新的變量。 正如你可以看到,我想從我傳遞的對象的屬性,我試圖用${}這樣做,但我有麻煩:

tester loop start: [object Object].start 

回答

1

您可以使用括號表示直接訪問屬性

用法與括號記號

let logger = (title, interval, type) => { 
    switch (type) { 
     case 'start' || 'end': 
      console.log(`${title} loop ${type} time: ${interval[type]}`); 
      break; 
    } 
}; 

用法與訪問屬性直接

let logger = (title, interval, type) => { 
    switch (type) { 
     case 'start' || 'end': 
      console.log(`${title} loop ${type} time: ${interval.start}`); 
      break; 
    } 
}; 

實施例:

logger('tester', {start: new Date(), end: new Date()}, 'start'); 
2

你需要用括號標記:

console.log(`${title} loop ${type} time: ${date[type]}`);