関数内で、引数として渡されたオブジェクト(配列、ハッシュ)の変更は、グローバルに適用される!
ふつう、関数内のできごとは、外の世界には影響しないと思うよね?
でも、配列やハッシュ(オブジェクト)は影響する!
関数内で加えたオブジェクトの変更は、外の世界にも適用される。オブジェクトなんだから、たしかに考えてみればそっかあ。でもよくこれで今まで僕やってこれたって不思議に思うよね!
var str = 'たけま'; var arr = ['yeah','hoo']; alert(str+' : '+arr); //たけま : yeah,hoo function array_pusher (s, a) { s = 'うん?'; a.push('プッシュ!') } array_pusher(str, arr); alert(str+' : '+arr); //たけま : yeah,hoo,プッシュ!