私は、Javascript にはプリミティブ型と参照型があるという前提で生きてきました。日常的に、このような影響を受けたことは一度もありませんが、より多くの JS を使い始めたばかりで、自分の「考え方」を更新したいと考えていました。言い換えれば、次の式が 68 を返すことに 20 ドルを賭けたはずです。
var my_obj = {};
var tmp_obj = {};
tmp_obj.my_int = 38;
my_obj.tmp_val = tmp_obj.my_int;
tmp_obj.my_int = 68;
alert('68 means reference, 38 means primitve: ' + my_obj.tmp_val);
しかし、それは 38 を返します。
参照型のコンテキストに存在する場合でも、数値のすべてのインスタンスはプリミティブ型ですか? y の場合、私は本当に驚いて、その奇妙な動作を見つけます (そして 20 ドルかかるでしょう)。それとも、私の例は私が考えていることを示していませんか?
thx事前に
更新 #1
うわー、すべての答えにthx。これは、理解するのに非常に役立つわずかな変更です。
var my_obj={};
var tmp_obj={};
var my_obj_2=tmp_obj;
tmp_obj.my_int=38;
my_obj.tmp_val=tmp_obj.my_int;
tmp_obj.my_int=68
alert('68 means reference, 38 means primitve: ' + my_obj.tmp_val); // 38
alert('68 means reference, 38 means primitve: ' + my_obj_2.my_int); // 68
my_obj_2.my_int=78;
alert(tmp_obj.my_int); // tmp_obj is now 78 ie two way