オブジェクトと配列 新しいオブジェクトリテラル構文 簡略表記
入門JavaScriptプログラミング (JD Isaacks(著)、株式会社クイープ(監修、翻訳)、翔泳社)のUNIT2(オブジェクトと配列)、LESSON 12(新しいオブジェクトリテラル構文)、12.5(練習問題)、Q12-1の解答を求めてみる。
コード
function createStateManager() {
const state = {};
return {
update(changes) {
Object.assign(state, changes);
},
getState() {
return Object.assign({}, state);
},
clearState() {
for (const key of Object.keys(state)) {
delete state[key];
}
},
}
}
let stateManager = createStateManager();
console.log(stateManager);
console.log(stateManager.getState());
stateManager.update({ k1: 'v1', k2: 'v2' });
console.log(stateManager.getState());
stateManager.update({ k2: 'v3', k3: 'v4' });
console.log(stateManager.getState());
stateManager.clearState();
console.log(stateManager.getState());
入出力結果(Console)
% node sample1.js
{
update: [Function: update],
getState: [Function: getState],
clearState: [Function: clearState]
}
{}
{ k1: 'v1', k2: 'v2' }
{ k1: 'v1', k2: 'v3', k3: 'v4' }
{}
%