Javascript/デザインパターン

Javascript/デザインパターン/Clean Code/Set default objects with Object.assign

オブジェクトのデフォルト値設定

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 は、未定義になる。
}
トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS