JavaScriptの基本なんだけど、ふとどういう挙動なのか曖昧になったので確認&メモ
- 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);
-
-
- var bool = this.bool;
- bool = false;
-
- console.log(this.bool);
- console.log(bool);
-
-
- var num = this.num;
- num = 99;
-
- console.log(this.num);
-
-
- var str = this.str;
- str = 'chinko';
- console.log(this.str);
-
-
- var obj = this.obj;
- obj.baka = 'stupid';
-
- console.log(this.obj.baka);
- }
- }
-
- test.test();
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();
オブジェクトは参照渡し。
参考:
参照型の値を変数へ代入
0 件のコメント:
コメントを投稿