JSの基礎 - この

この

いくつかの状況があり、この点?

これは、オブジェクトに関連付けられた関数呼び出しを表し、通常は実行コンテキストページと呼ばれます。

  1. 直接関数コール、非厳密モードでは、この点ウィンドウ、厳密モードとして、この点は不定。
  2. オブジェクトを呼び出す方法としては、これは通常、オブジェクトの呼び出しを指します。
  3. あなたはこの点をバインドすることができバインドし、呼び出して、適用されます使用してください。
  4. コンストラクタでは、これは、新しく作成されたオブジェクトを指し示します
  5. 機能を、それが中に宣言された同じコンテキストで、矢印を作成するには、この機能で決定された別個のこの値を、矢印ありません。

関数が繰り返し結合した場合、コンテキストはそれが何ですか?

let a = {}
let fn = function () { console.log(this) }
fn.bind().bind(a)() // => ?

私たちは、この機能のバインドを数回与えるかどうか、FNは常に最初のバインドによって決定され、その結果は、常にウィンドウです。

// fn.bind().bind(a) 等于
let fn2 = function fn1() {
  return function() {
    return fn.apply()
  }.apply(a)
}
fn2()

この規則は、より、この最後のポイントを表示されたら?

まず、バインドすることにより、これらの機能を、同時に、矢印のこの機能は、一度バインドされ、その後、obj.foo()はこの方法を呼び出し、最終的な方法で呼ばれるFOOを追った新しい方法最高の優先度は、そうではありませんもはやどのような方法で変更すること。

おすすめ

転載: www.cnblogs.com/nayek/p/11729926.html