JavaScript
Node.js
extend

オブジェクト配列の値渡し(extend on NodeJS)

一次元配列の値渡し

Array.slice()かArray.concat()を使えばよい。
JavaScriptで配列のコピー(値渡し)

ただし、値渡しできるのは文字列数値のみ。
オブジェクトはできない
Array.prototype.slice()

  • もし参照されたオブジェクトが修正されたら、その変更は新しい配列と元の配列の両方に現れます。
  • 文字列や数値 (String オブジェクトや Number オブジェクトではなく) については、slice は文字列や数値を新しい配列にコピーします。一方の配列の文字列や数値に変更を加えても、他方の配列に影響はしません。

オブジェクト配列はどうする?

JavaScriptのオブジェクトを扱うとき、=はただの値渡しではない

オブジェクトの場合、値渡しされるのはポインタ(参照の値渡し)。

  • Jqueryの$.extend()を使う

NodeJSではjquery.extend()は使えない

$ npm install jquery
var $ = require('jquery')
$.extend({},object)

NodeJSで使おうとすると、
extend is not a functionと怒られる。

Node.jsで$.extendを使いたい!!!

$ npm install extend
var extend = require('extend')
//targetObjectにobject1,object2をマージするやり方
extend(targetObject, object1, object2);

//新規にオブジェクトを生成したいときは空のオブジェクトにマージする
extend( {},{値渡ししたいオブジェクト} )

GitHub