JavaScript 開発の動的な世界では、ブラウザ間の互換性を確保することが最も重要です。これを実現するために不可欠なツールの 1 つは、bind() メソッドです。ただし、古いブラウザでは完全にはサポートされていない可能性があります。ここでポリフィルが役に立ちます。
ポリフィルは本質的に、古いブラウザではネイティブにサポートされていない機能を提供するコードの一部です。この場合、コードが異なる環境間でシームレスに動作することを保証するために、bind() メソッドの ポリフィルの作成について詳しく説明します。
この重要なポリフィルを構築する方法を見てみましょう。
定義 : Bind() メソッドは基本的に、オブジェクトがコピーせずに別のオブジェクトからメソッドを借用できるようにします。
ここでは、バインド ポリフィルを段階的に説明します。
Ln:1、Person はオブジェクトであり、「name」プロパティと関数プロパティとして printAge を持ちます。ここの PrintAge は名前と年齢を出力します。
Ln:8、Person2 は、「name」プロパティを持つが printAge 関数を持たない単なる別のオブジェクトです。
Ln: 22、この行では、myBind 関数 (ポリフィル) を呼び出し、結果を「bindFunc」という名前の変数に保存します。
Ln 12、ここで myBind メソッドのポリフィルを記述します。この関数では、myBind メソッドを追加するオブジェクトとその他の引数を受け取ります。多くの引数を渡すことができるため、基本的には「...args」を使用してすべての引数を対象とします。
次に、「this」の型 (ここでは「printAge」関数) が関数であるかどうかを確認します。関数でない場合はエラーをスローします。そうでない場合は、次のように関数を obj (person2) に割り当てます。 myBind 関数のパラメータとして渡される「obj.fn」。ただし、「bind」メソッドは個別に呼び出される関数を返すため、ここでも「...args2」を引数として関数を返します。これは、本来は渡さないはずの追加の引数も渡すことができることを意味します。ポリフィルを通過します。
18 番目では、すべての引数を printAge 関数に渡します。これで、必要なものがすべて揃って、bind メソッドと同じように機能できるようになりました。
注: myBind メソッド呼び出し (Ln 22) で age = 35 を送信する代わりに、bindFunc(35) への引数として渡すこともできます。これが、 「...args2」、追加のパラメータまたは引数を処理します.
この説明が気に入ったら、Twitter または LinkedIn でつながりましょう。フィードバックがある場合は、コメントでお知らせください。本当に助かります。
ツイッター
LinkedIn
以上がBind() のポリフィルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。