第70回
今回は忌念すべき第70回ということで、
「a=b」についてちょこまかと3つの実験をします。
コード1
function Main1(){
 var a=0,b=a
 delete a
 alert(b)
 var a={},b=a
 delete a
 alert(b)
}
↑まあ当たり前。(なのか?)
コード2
function Main2(){
 var a=0,b=a
 b=2
 alert(a)
 var a={},b=a
 b.q=1
 alert(a.q)
}
↑矛盾を感じる…
function Main3(){
 var a=0,b=a
 b++
 delete b
 alert(a)
 var a={q:1},b=a
 b.q++
 delete b
 alert(a.q)
}
↑…!!!
総括
b=aするときは、よく考えましょう。delete bしてもaは消えないぞ。
これって一見当然のことのようですが、たとえば
var M=MySomething.MyItem.Mine
みたいなことはよくあると思うので、そういう場面では注意です。
ホーム  戻る