0

JavaScript でビルダーを構築していますが、ビルダーがオプションの未定義の値を通常どのように処理するのかわかりません。フィールドが未定義の場合、ビルダーはオプションのフィールドをオブジェクトに追加しないと思います。それはビルダーに受け入れられますか?そうでない場合、代替手段は何ですか?

ビルダーが未定義のオプションを追加しない最初の実装のサンプルを次に示します。

ビルダー:

function Thing(required1, required2, required3) {
 //check required params 

  var fields = {
    required1: required1, 
    required2: required2, 
    required3: required3
  };  

  var _withOptionalParam = function(param) {
    if(!param) { return this; } //exit function early if param is undefined

    fields.param = param; 
    return this; 
  };

  var _build = function() {
    var result = fields;
    return result;
  };

  var builder = {
    withOptionalParam: _withOptionalParam,
    build: _build
  };

  return builder;
}

実際に:

var thing = new Thing("foo","bar","baz").withOptionalParam(undefined).build();

//'thing' should be 
// { 
//  required1:"foo", 
//  required2:"bar", 
//  required3:"baz"
// };
//

前もって感謝します!

4

1 に答える 1