値渡し
変数には値そのものを渡すため、元の変数xの値を書き換えても変数yには影響しません。
js
let x = 10;
let y = x;
x = 30;
console.log(y);
実行結果
10
メソッドの場合(例1
以下はメソッドの場合の例です。
メソッドの中で変数xの値を書き換えても、呼び出し元では影響を受けません。
js
let x = 100;
call(x);
console.log('呼び出し元:' + x);
function call(x){
x = x * x;
console.log('呼び出し先:' + x);
}
実行結果
呼び出し先:10000
呼び出し元:100
メソッドの場合(例2
js
let val = 10;
function kakezan(val){
return val * val;
}
console.log(kakezan(val));//100
console.log(val);//10
参照渡し
配列やオブジェクトなど参照型の場合は、元の変数xの値を書き換えると変数yにも影響します。
js
let x = [1,2,3];
let y = x;
x[2] = 30;
console.log(y);
実行結果
[ 1, 2, 30 ]
メソッドの場合(例1
以下はメソッドの場合の例です。
メソッドの中で変数x[1]の値を変更すると、呼び出し元でもその変更の影響を受けます。
js
let x = [1,2,3];
call(x);
console.log('呼び出し元:' + x[1]);
function call(x){
x[1] = x[1] * x[1];
console.log('呼び出し先:' + x[1]);
}
実行結果
呼び出し先:4
呼び出し元:4
メソッドの場合(例2
js
let array = [1,2,3,4,5];
function addArray(array){
array.push(6);
return array;
}
console.log(addArray(array));//[ 1, 2, 3, 4, 5, 6 ]
console.log(array);//[ 1, 2, 3, 4, 5, 6 ]
以上で記事の解説はお終い!
HTML、CSS、JavaScriptをもっと勉強したい方にはUdemyがオススメ!同僚に差をつけよう!