5

他の言語とは異なり、JavaScript ではthis常に、実行中の関数の「所有者」、または関数がメソッドであるオブジェクトを参照します。

他の言語と比較して、この動作の利点/目的は何ですか?

4

2 に答える 2

3

'this'を設定できるので、呼び出す任意の関数のスコープを設定でき、関数クロージャを使用していくつかの興味深いことを実行できます。これは、ほとんどのJSフレームワークで、より自然にオブジェクト指向のクラス動作を実行できるようにする方法です。これは、イベントリスナーがあり、リスニング機能のスコープを設定する場合に特に役立ちます。

于 2012-05-24T21:04:16.983 に答える
1
  • デフォルトでは、これはグローバル オブジェクトを参照します。
  • 関数が親オブジェクトのプロパティとして呼び出されると、これはその関数内の親オブジェクトを参照します。
  • 関数が new 演算子で呼び出されると、これはその関数内で新しく作成されたオブジェクトを参照します。
  • 関数が call または apply を使用して呼び出される場合、これは call または apply に渡される最初の引数を参照します。最初の引数が null またはオブジェクトでない場合、これはグローバル オブジェクトを参照します。

http://unschooled.org/2012/03/understanding-javascript-this/から取得

こちらも併せてご覧ください。

http://javascriptplayground.com/blog/2012/04/javascript-variable-scope-this

于 2012-05-24T21:08:28.143 に答える