WEBサイト制作・アプリ開発・システム開発・ブランディングデザイン制作に関するご相談はお気軽にご連絡ください。
構想段階からじっくりとヒアリングし、お客様の課題にあわせたアプローチ手法でお客様の“欲しかった”をカタチにしてご提案いたします。
Blog スタッフブログ
JavaScript
WEB制作
システム開発
[jQuery]参照渡しと値渡し
システム開発担当のTFです。
概要
- Objectの変数を関数にいれたり、そのまま変数に入れた場合、参照渡しとなり、渡された側で値を変更すると、元の変数もかわる
- Objectの値渡しをする際は、json文字列化し、それを戻すと別Objectの変数扱いとなる
サンプル
// 参照渡し
var a, b;
a = [0,1,2];
b = a;
b[0] = 3;
// a が [3,1,2]
// b が [3,1,2]
// 参照渡し
var a,b;
a = [0,1,2];
b = test(a);
// a が [3,1,2]
// b が [3,1,2]
function test(work){
work[0] = 3;
return work;
}
// 値渡し
var a, b;
a = [0,1,2];
b = JSON.stringify(a); // JSON文字列化
b = JSON.parse(b); // JSON文字列化したものを戻す
b[0] = 3;
// a が [0,1,2]
// b が [3,1,2]
// 参照渡し
var a,b;
a = [0,1,2];
b = test(a);
// a が [0,1,2]
// b が [3,1,2]
function test(work){
work = JSON.stringify(work); // JSON文字列化
work = JSON.parse(work); // JSON文字列化したものを戻す
work[0] = 3;
return work;
}