1. ホーム
  2. javascript

[解決済み] window.locationと単なるlocationの比較

2023-05-15 12:22:23

質問

ウェブ上では、非常に多くのJavaScriptプログラマが window.location ではなく、単に location . その理由を説明できる人がいるかどうか知りたかったのです。 window はグローバルオブジェクトなので、入れる必要はないのでは?というのは、人が window.Math.floor とか new window.Date() で指定される理由が気になります。 location .

私は、以下のことを理解しています。 location は、今いるウィンドウの "property" と見なされることを理解し、それはある程度理にかなっていると思います。しかし、そうであっても、グローバル オブジェクトを指定する理由は見当たりません。 location を上書きすることは不可能であり、ページをリダイレクトすることもできません。

では、これは単に長い間使われてきて、私たちが JavaScript を書く方法と一体化してしまった癖なのでしょうか、それともこの方法で物事を行う具体的な理由があるのでしょうか?Google で調べてみましたが、残念ながら何も出てきませんでした...。

どうすれば解決するのか?

私はいつも window.location を使っています。

  1. 可能な限りグローバル変数を避けるのは良い習慣です。グローバル変数を使用すると window. プレフィックスを使うことで、その変数がグローバルであり、他はそうでないことを思い出させてくれます。
  2. Javascriptのスコープの性質上、スコープツリーの上位に設定された変数を上書きすることができます。 これはつまり、あなたが設定した var location を含むスコープのどこか(変数名として使用するのはありえない言葉ではありません)に設定することができ、代わりにそれを扱うことになります。

私にとって、コーディング時の目的を明確にすることは、バグを書くのを避け、書いたときにそれを見つけるのを助けるので、非常に重要です。