2

Google Apps Script/JS でプロジェクトに取り組んでいますが、Object.create() メソッドを使用してオブジェクトの配列をコピーしようとすると、何らかの理由で予期しない動作が発生します。関連するコードのスニペットを以下に示します。関数が終了すると、2 番目のパラメーターが正しく渡されたとしても、オブジェクトの元の配列が変更されます。

  WebConfigParser.prototype.compareWith = function(array_of_objs, parameter_flag)
  {
  var safe_array_of_objs = [];
  var array_of_objs_to_touch;
  if(parameter_flag)
  {
    if(parameter_flag === "passbyval")
    {
      for(var i = 0; i < array_of_objs.length; i++)
      {
        safe_array_of_objs.push(Object.create(array_of_objs[i]));
      }
      array_of_objs_to_touch = safe_array_of_objs;
    }

  }
  else
  {
    array_of_objs_to_touch = array_of_objs;
  }
  ///more code happens here...but i'm always referring to "array_of_objs_to_touch"
}
4

1 に答える 1