JavaScript のバインド メソッドは、新しい関数を作成するために使用されます。その使用構文は「function.bind(thisArg[, arg1[, arg2[, ...]]])」です。ここで、パラメーター thisArg呼び出しを表します。 関数をバインドするときに、ターゲット関数に this パラメーターとして渡される値。
この記事の動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
JavaScript でのバインドの使用法は何ですか?
Function.prototype.bind()
bind() メソッド新しい関数の場合、bind() を呼び出すときに、bind() の最初のパラメータとして新しい関数のこれが指定され、残りのパラメータは呼び出し時に使用する新しい関数のパラメータとして使用されます。
構文
function.bind(thisArg[, arg1[, arg2[, ...]]])
パラメータ thisArg:
バインドされた関数を呼び出すときに、ターゲット関数に this パラメータとして渡される値。 new 演算子を使用してバインドされた関数を構築する場合、この値は無視されます。 setTimeout (コールバックとして提供される) で関数を作成するためにバインドを使用する場合、thisArg として渡されるプリミティブ値はオブジェクトに変換されます。バインド関数の引数リストが空の場合、または thisArg が null または未定義の場合、実行スコープの this は新しい関数の thisArg として扱われます。
パラメータ arg1、arg2、...:
ターゲット関数の呼び出し時にバインドされた関数のパラメータ リストに事前設定されるパラメータ。
戻り値:
指定されたこの値と初期パラメータを使用して、元の関数のコピーを返します。
説明:
bind() 関数は、新しいバインド関数 (バインド関数、BF) を作成します。バインド関数は、元の関数オブジェクトをラップするエキゾチック関数オブジェクト (ECMAScript 2015 用語) です。バインドされた関数を呼び出すと、通常はラッパー関数が実行されます。
バインド関数には次の内部プロパティがあります:
[[BoundTargetFunction]] - ラップされた関数オブジェクト
[[BoundThis]] - ラップされた関数が呼び出された値は常に this 値として渡されます。
[[BoundArguments]] - リスト。ラッパー関数を呼び出すと、最初に引数リストにリスト要素が入ります。
[[Call]] - このオブジェクトに関連付けられたコードを実行します。関数呼び出し式を介して呼び出されます。内部メソッドのパラメータは、this 値と、呼び出し側の式を通じて関数に渡されるパラメータを含むリストです。
バインドされた関数が呼び出されると、この Call(boundThis, args) のように、[[BoundTargetFunction]] の内部メソッド [[Call]] が呼び出されます。ここで、boundThis は [[BoundThis]]、args は [[BoundArguments]] に関数呼び出しを通じて渡される引数リストを加えたものです。
バインドされた関数は、new 演算子を使用して構築することもできます。この演算子は、ターゲット関数が構築されているかのように動作します。指定された this 値は無視されますが、前方パラメータは引き続きモック関数に提供されます。
推奨学習: 「JavaScript 基本チュートリアル #」
以上がJavaScriptでのバインドの使用法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。