コンソールでこれを行うことができますか?window.window.window.window
と.window
を無限に追加して、DOMウィンドウを返しますか?コンソールwindow.window.window.windowでこれを行うことができ、ウィンドウを返すのはなぜですか?
2
A
答えて
1
これは、ウィンドウオブジェクトがウィンドウオブジェクト自体を指しているからです。
この動作のためのいくつかの理由が
- は、それが簡単にグローバルオブジェクトを参照することができます含める(そうでない場合は手動VARウィンドウを行うに を持っていると思います=この;あなた スクリプトの先頭に割り当て) 。
- 「window.open( 'http://google.com/')」と書くことはできません。「open( 'http:// google」)を使用するだけです。
- このプロパティを使用する別の理由は、OOPバージョンと非OOPバージョン(特にJavaScriptモジュール)を提供したいライブラリのためです。
またhere
4
オブジェクトにはwindow
オブジェクトへの参照を含むwindow
というプロパティがあります。
これは、これと同じ原理で動作します:window
オブジェクトは、それ自体を指すwindow
性質を持っているので
var foo = {};
foo.foo = foo;
foo.bar = 1;
alert(foo.foo.foo.foo.foo.bar);
+0
私たちのパラレルな初期回答でLOLを編集してから編集します。あなたのために+1してください。 :) – Phrogz
5
2
window
を、したがって、それは基本的に自分自身へのポインタですが、グローバルオブジェクトへの参照である、とwindow
変数はグローバルスコープです。
関連する問題
- 1. なぜこれを行うことができないのですか?
- 2. C++ダイナミックアレイ - なぜこれを行うことができますか?
- 3. PHPでselfを返すことができないのはなぜですか?
- 4. なぜこれが起こるのですか? HTMLウィンドウの幅
- 5. コンソールで実行したときにコードがブラウザのウィンドウに表示されないのはなぜですか?
- 6. これでSet-MailContact -EmailAddresses行がエラーを返すのはなぜですか?
- 7. テキストクラスタリングがこれを行うのはなぜですか
- 8. これはSQLAhclemy/Pythonで行うことができますか?
- 9. これはcytoscape.jsで行うことができますか?
- 10. これはdocusignテンプレートで行うことができますか?
- 11. これはMicrosoft Accessで行うことができますか?
- 12. このxpathが空のノードセットを返すのはなぜですか?ここで
- 13. これは1行で行うことができます
- 14. XCodeでデバッグするときにコンソールでこれらのエラーが表示されるのはなぜですか?
- 15. .htaccessファイルでこれを行うことはできますか?
- 16. Spockでこれを行うことはできますか?
- 17. LESSでこれを行うことはできますか?
- 18. CSSメニューでこれを行うことはできますか?
- 19. ASP.NETルーティングでこれを行うことはできますか?
- 20. PHPでこれを行うことはできますか?
- 21. customErrorsでこれを行うことはできますか?
- 22. ブルートゥースでこれを行うことはできますか?
- 23. Laravel Sparkでこれを行うことはできますか?
- 24. CouchDBでこれを行うことはできますか?
- 25. SQL Serverでこれを行うことはできますか?
- 26. Javaでこれを行うことはできますか?
- 27. WCFのDataMemberが型を返すことができないのはなぜですか?運で、仕事にこれを取得しようとすると
- 28. なぜ矢印関数を返すことができないのですか?
- 29. なぜ代入文を返すことができないのですか
- 30. なぜこの行に入ることができないのですか?
だけを読み取る[理由](https://developer.mozilla.org/en/DOM/window.window)。 – Jon
ウィンドウオブジェクトが代わりに "buffalo"と呼ばれていたのであれば楽しいと思います。 – Pointy
これは循環参照と呼ばれています。オブジェクトのプロパティは、それ自体を参照します。 –