6

重複の可能性:
IE/Chrome: DOM ツリー要素はグローバル変数ですか?

私は現在、jquery mobile を使用してモバイル サイトに取り組んでおり、興味深いことに気付きました (とにかく、私はまだ js に慣れていないので)。関数内では、id だけで要素を参照できます。

これは私が使用したテスト コードです (chrome 22.0.x、firefox 16.0.1、および safari 5.1.7):

<!DOCTYPE html>
<html>
  <head></head>
  <body onload="tt()">
    <div id="abc">Test</div>
    <a id="cba">Test2</a>
  </body>
  <Script>
    function tt() {
        console.log(abc);
        abc.style.backgroundColor = "red";
        return cba;
    }
  </Script>
</html>

getElementById なし、jquery セレクターなし、ID のみ。それはいつもこのようでしたか?もしそうなら、これは良い習慣ですか?なぜこれが機能するのですか? 関数にはコンテキストが必要だと思いますが、それはどこにあり、ページですか?

洞察をいただければ幸いです、ありがとう。

4

1 に答える 1

6

あなたは本当にやっています:

window.abc;

これは IE が始めたもので、実際には設計上の選択として不適切でした。

非常によく似た質問に対するこの素晴らしい回答を参照してください

本当に重複していますが、タイトルはこれを反映していません。

コンソールでこの行を試して、私が何を意味するかを確認してください。

(function(){ console.log(this); })(); // logs the Window object
于 2012-10-16T04:00:03.087 に答える