1

シャドウイングは混乱を招くため、決して使用しないでください(または単に難読化するために)。しかし、私はそれを完全に理解したかったのです。そして、私はこの奇妙なものを手に入れました:

alert(parseInt('123'));//Here, I expected 123 but it's 'overshadowed'
function parseInt(){return 'overshadowed';}
alert(parseInt('123'));//Here it's 'overshadowed' too

alert関数がまだ変更されていないのに、なぜ最初の出力が「影付き」なのですか?

PS: JavaScriptの可変シャドウイングに触発されました

4

1 に答える 1

2

JavaScript では、すべての宣言が暗黙的にスコープの先頭 ( "hoisted" ) に配置されるため、 parseInt() 定義が 2 行目、最後、または最初の行にあったかどうかは問題ではありません。

于 2012-06-05T12:37:39.607 に答える