我試圖找到將這三個功能抽象成一個的最佳方式。如何將相似的Javascript功能抽象爲一個?
function displaySummary(data) {
getMyElement('app__summary').innerHTML = data.summary;
return data;
}
function displayTemperature(data) {
getMyElement('app__temperature').innerHTML = data.temperature;
return data;
}
function displayLocation(data) {
getMyElement('app__location').innerHTML = data.location;
return data;
}
正如你所看到的,它們三者共享確切的結構。該參數只是一個具有一些屬性的簡單對象。
我想什麼做的是能夠調用一個函數有兩個參數,如下所示:
displayElement(data, 'location');
而且有這樣的事情來看(注意,這下一個是僞代碼):
function displayElement(data, STRING) {
getMyElement('app__STRING').innerHTML = data.STRING;
return data;
}
你會怎麼做呢? 也歡迎ES2015語法。
META:我知道這個問題可能被標記爲潛在的以下問題的重複。這些答案都沒有答案如何插入(如果可能的話)一個字符串作爲一個屬性訪問器,這主要是我認爲應該解決這個問題。我願意提出建議和編輯,以使這個問題更好。
編輯:@Bergi標記爲複製未在我的搜索來一個問題,並且確實解決這個問題。我應該刪除這個嗎?
有什麼問題你'pseudocode' - 除了'app__STRING'應該是'app__ + STRING'? – tymeJV
閉包。答案總是關閉。 – Bergi
@tymeJV說什麼+'data.STRING'應該是'data [STRING]' –