2017-03-03 11 views
1

これは用語についての質問です。字句の反対側this

var foo = { 
    method: function() { 
    console.log(this, ' is the context'); 
    } 
}; 

foo.method(); 

thisための従来の用語は、別のコンテキストにバインドされたり切り離されたときにメソッドが呼び出されたときに何:

字句thisを用いる方法があることを考えると?

bazThatAcceptsACallback(foo.method); 
foo.method.bind(baz)(); 
(0, foo.method)(); 

私はしばしばこのような場合には「この文脈」「非字句この」としてそれを参照するか、私は、公式または信頼できるソースでこれらまたは類似の用語に会ったことはありません。

+1

これはどのように「字句」ですか? – melpomene

+0

文言はここでもう少し明確にすることで可能です。関数が定義されている範囲(この場合は 'foo')と呼び出されるコンテキスト(' this'は 'foo'を参照する場合としない場合があります)との間に何を意味していますか? – apokryfos

答えて

4

字句の反対はdynamicthisです。

ただし、字句thisは、functionスニペットに表示されているものではありません。矢印機能にはthisが含まれています。

+0

静的スコープに対抗するダイナミックスコープは理にかなっています。 – estus

1

JSレキシカルthisの動作を説明するために、別の用語は必要ありません。常にその関数が呼び出される "コンテキスト"です。それを親オブジェクトまたは別のバインディングにしておけば、語彙thisは常にコンテキストを表すと言えます。

関連する問題