4

前に質問したのですが、誰かが私にガイドをくれて、それを読んでこれを見ました

  var temp = setTimeout,
  setTimeout = function() {};

彼は、JavaScript 巻き上げのために temp が未定義になると言いましたが、なぜそうであってはならないのかわかりません。

    var temp;
    temp = setTimeout;
    setTimeout = function() {};

では、なぜその未定義なのですか?

4

2 に答える 2

5

これは同じではありません。あなたの複数のvar宣言はまた宣言しsetTimeoutます:

var temp = setTimeout,
    setTimeout = function() {};

に引き上げられる

var temp; // = undefined
var setTimeout; // = undefined
temp = setTimeout;
setTimeout = function() {};
于 2012-11-22T02:29:45.683 に答える