Javascript で (jQuery プラグインを使用せずに) 変数/関数の競合を回避する方法は何ですか? 独自の新しい関数を作成したいが、競合を避けたい。
関数スコープ (スコープのためだけの関数) を使用するのも 1 つの方法だと思います。他の可能性は何ですか?
また、競合を避けるために関数を何かでラップする場合、実際に外部からどのようにアクセスしますか?
基本的な例を探しています。
Javascript で (jQuery プラグインを使用せずに) 変数/関数の競合を回避する方法は何ですか? 独自の新しい関数を作成したいが、競合を避けたい。
関数スコープ (スコープのためだけの関数) を使用するのも 1 つの方法だと思います。他の可能性は何ですか?
また、競合を避けるために関数を何かでラップする場合、実際に外部からどのようにアクセスしますか?
基本的な例を探しています。
メソッドを呼び出す他のオブジェクトにのみメソッドをアタッチする場合は、コードをすぐに呼び出される関数式 (IIFE) でラップして、新しいグローバル オブジェクトやプロパティを作成せずにメソッドを割り当てることができます。この戦略は、グローバル コンテキストではなく IIFE の実行コンテキストへのクロージャーを使用して変数が共有されるリスナーをアタッチするのに役立ちます。変数は、実行コンテキストに既に存在するオブジェクトにアタッチされるため、追加のグローバル オブジェクトが存在しないか、変数。
ただし、そのような関数は引き続きグローバル関数にアクセスできます。
2 番目の戦略は、単一の名前付きオブジェクトを作成し、すべてのメソッドをプロパティとしてそれにアタッチすることです。オブジェクトのプロパティとして、または IIFE によって割り当てられた関数内のクロージャによって、値を共有することもできます。
実際には、すべてのグローバル変数で適切に選択されたランダムなプレフィックスは、名前の衝突を回避するのに適していますが、一般的ではありません.