Articles

Javascript:call(),apply()and bind()

call(),apply()and bind()—新しい希望

これまで、関数は名前(オプション、無名関数でもかまいません)と、呼び出されたときに実行されるコードで構 しかし、それは全体の真実ではありません。 真実を愛する人として、私はあなたに関数が実際に次の画像に近いように見えることを知らせなければなりません:div>

これ??????? 心配しないで! 私は今、例ですべての関数に表示されるこれらの3つの同様の方法を歩いていきます。 喜んで!p>

bind()

公式ドキュメントは言う:bind()thisキーワードが指定された値に設定された新しい関 (それは実際にはさらに多くのものについて話していますが、私たちは別の時間のためにそれを残しておきます :))

これは非常に強力です。 関数を呼び出すときにthisの値を明示的に定義しましょう。 Cooooodeを見てみましょう:

を使用してbind() method on line 14.

それを分解してみましょう。 bind()メソッドを使用すると、JSエンジンは新しいpokemonNamepokemonthis変数としてバインドしています。 PokemonName関数をコピーすることを理解することが重要です。

  • pokemonNamelogPokemon()を呼び出すことができますが、最初はpokemonオブジェクトにはありませんでした。 それは今、その特性(PikaとChu)とその方法を認識します。 そして、クールなことは、bind()値をbind()した後、他の通常の関数と同じように関数を使用できることです。 パラメータを受け入れるように関数を更新し、次のように渡すこともできます:p>

    call()、apply()

    call()の公式ドキュメントは次のように言います。call()call()call()call()call()thisbind()メソッド! これは間違いなくハックなコードを書くことから私たちを救うことができます(私たちはすべてまだhackerzzzですが)。

    bind()call()call()メソッド:

    1. は追加のパラメータも受け入れます
    2. すぐに呼び出された関数を実行します。li>
    3. call()メソッドは、呼び出されている関数のコピーを作成しません。

    call()apply()まったく同じ目的を果たします。 それらがどのように機能するかの唯一の違いは、call()はすべてのパラメータが個別に渡されることを期待していますが、apply()はすべてのパラメータの配列を 例:

    Applyは受け入れ、配列、およびcallは各パラメータを個別に期待していることに注意してください。

    すべてのJS関数に存在するこれらの組み込みメソッドは非常に便利です。 たとえあなたが日々のプログラミングでそれらを使用しなくても、他の人々のコードを読むときには、まだ頻繁にそれに遭遇します。ご質問がある場合は、いつものように、Instagramの経由で手を差し伸べる♥