var test = { arr: [1,2,3,4], bool: true, num: 100, str: 'unko', obj: { baka: 'fool', aho: 'idiot' }, test: function(){ //配列 var arr = this.arr; arr.shift(); //元のデータも変更される console.log(this.arr);//[2,3,4] //真偽値 var bool = this.bool; bool = false; //真偽値は元のデータは変更しない console.log(this.bool);//true console.log(bool);//false こっちはもちろん変更されてる //数値 var num = this.num; num = 99; //変更されない console.log(this.num);//100 //文字列 var str = this.str; str = 'chinko'; console.log(this.str);//unko //オブジェクト var obj = this.obj; obj.baka = 'stupid'; //変更されている console.log(this.obj.baka);//stupid } } test.test();オブジェクトは参照渡し。 参考:参照型の値を変数へ代入
2012/05/02
[JavaScript] データを格納した変数を変更すると、もとのデータも変更されたりされなかったり
JavaScriptの基本なんだけど、ふとどういう挙動なのか曖昧になったので確認&メモ
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿