k01ken’s b10g

He110 W0r1d!

JavaScriptで値渡しと参照渡しについて

開発環境は、Windows7 Professional(32bit) + Firefox 61.0.1(32bit)。

値渡し - 値を変更しても元のデータは変わらない

let x = 10;
let y = 12;
y = 12;
console.log(y); // 12
console.log(x); // 10

参照渡し - 値を変更すると元のデータが変わってしまう
データの値を別の変数にコピーして、それぞれで違う処理をさせようと思ったら、詰まってしまう。

// 配列
let arr = [1,2,3];
let arr2 = arr;
arr2[1] = 10;
console.log(arr2); // [1,10,3]
console.log(arr); // [1,10,3]

// オブジェクト
let obj1 = { value: 10 };
let obj2 = obj1;
obj2.value = 20;
console.log(obj2); // Object { value: 20 }
console.log(obj1); // Object { value: 20 }