- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2022-07-26T02:51:04+09:00","","")
#author("2022-07-26T02:55:59+09:00","","")
[[Javascript/デザインパターン]]
* Javascript/デザインパターン/Clean Code/Set default objects with Object.assign [#sa36112f]
オブジェクトのデフォルト値設定
let params = {
title : 'CODE COMPLETE 2nd Edition',
author : 'Steve McConnell',
info : { memo2 : "sample" }
};
const DEFAULT_PARAMS = {
title : '',
author : 'unknown',
isbn : '-',
info : { memo : "memo", memo2 : "memo2" }
};
let bookInfo = Object.assign(DEFAULT_PARAMS, params);
console.log(bookInfo);
// 出力
// {
// title : 'CODE COMPLETE 2nd Edition',
// author : 'Steve McConnell',
// isbn : '-',
// info : { memo2 : "sample" }
// }
少し実用的な例)
function handler(event) {
const DEFAULT_EVENT = {
httpMethod : "GET",
pathParameters : { proxy : "path/to/resource" },
body : JSON.stringify({ key1 : "val1", key2 : "val2" }),
queryStringParameters : {
key3 : "val3",
key4 : "val4"
}
};
let eventParams = Object.assign(DEFAULT_EVENT, event);
console.log(eventParams);
//
//
// eventParams には必ず、
// httpMethod, pathParameters, body, queryString]Parameters が存在する
// => 個別に存在確認が不要!
//
// [注意]
// コピーされるのは、一階層目のキーに対して!
// { queryStringParameters : { key3 : "sample value" }}
// のようなものが渡されると、
// queryStringParameters.key4 は、未定義になる。
}