0

locationjavascript でオブジェクトをローカル変数に割り当てるには、次のうちどれを使用すればよいですか?

var l = location;
var l = window.location;
var l = window.document.location;

なぜこんなに多くの方法があるのですか?違いはありますか?

4

4 に答える 4

3

それらはすべて同じオブジェクトを参照します。ただし、window.locationより明示的で、クロスブラウザーに準拠しておりlocation、異なるスコープで名前が付けられた他の変数との衝突を防ぐことができます。

なぜそんなに多くの方法があるのですか?

過ぎ去った時代からのブラウザの違い/痕跡。

于 2012-05-30T21:46:53.760 に答える
3

を使用window.locationして、たまたま と呼ばれるローカル変数ではなく、グローバル オブジェクトのプロパティについて話していることを確認しますlocation

W3Cの仕様には次のように書かれています。

Window インターフェイスの location 属性は、その Window オブジェクトの Document の Location オブジェクトを返す必要があります。

したがって、これら 2 つは実際には同等です (実際にはまったく同じオブジェクトです)。

locationスコープ内に名前がwindow.location付けられた他の変数がない限り、たまたまの省略形です。location

于 2012-05-30T21:46:17.363 に答える
0

Web ブラウザでwindowは、変数ルックアップ チェーンの先頭に常にあります。したがって、グローバル変数xwindow.x. 例えば:

<script>
var x = 1;
window.alert(window.x);
</script>

警告し1ます。同様に、チェーンで呼び出されるローカル変数がこれ以上ない場合はlocation解決されます。window.locationlocation

于 2012-05-30T21:53:57.827 に答える
-1

window.location は _top の場所です。document.location は現在の HTML ページの場所です

iframe document.location にいる場合、window.location は親ページを参照するため、iframe の場所は異なります。

これにチェックを入れることで、同じかどうかをチェックすることでフレームから抜け出すことができます。許可されていないフレーミングを解除しない場合。または、i フレームの親ページが正しいページであるかどうかを確認します。そうでない場合は、正しいページにリダイレクトします。

于 2012-05-30T21:49:59.587 に答える