一次元配列の値渡し
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( {},{値渡ししたいオブジェクト} )