0
我讀通過this Flux教程和對象的創建有這樣的創建對象背後的理念:什麼是使用Object.assign
var AppDispatcher = assign({}, Dispatcher.prototype, {
/**
* A bridge function between the views and the dispatcher, marking the action
* as a view action. Another variant here could be handleServerAction.
* @param {object} action The data coming from the view.
*/
handleViewAction: function(action) {
this.dispatch({
source: 'VIEW_ACTION',
action: action
});
}
});
他們使用Object.assign
通過填充工具。由於Object.assign
將所有屬性複製到對象,而不是Object.create(prototype)
,我想知道他們的動機是直接將屬性複製到AppDispatcher
。有任何想法嗎?
你能否詳細說明那部分'...基於它的原型嗎?如何在不使用'assign'的情況下完成同樣的工作? –
@Maximus,你可以做'var AppDispatcher = Object.create(Dispatcher.prototype)',然後設置'AppDispatcher.handleViewAction =/*任何* /'。他們這樣做的方式只是爲了方便。使其更簡潔。沒有什麼特別的或隱藏的,這只是另一種方式。 –
'Object.create','Dispatcher.prototype'上可用的屬性將可以通過原型鏈訪問,但我認爲'assign'複製這些屬性並使它們具有'AppDispatcher'的屬性,不是嗎? –