| 今回は忌念すべき第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)
} |
| ↑矛盾を感じる… |
| 3 |
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 みたいなことはよくあると思うので、そういう場面では注意です。 |
| ホーム 戻る |