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"
}