0

私は現在jQueryを学んでいて、"this"キーワードの実装を始めたばかりです。jQuery での動作は理解していますが、スコープ参照として、javascript で同じ機能を持っていますか?

4

3 に答える 3

3

thisは jQuery の魔法ではなく、JavaScript のキーワードです。

于 2013-03-29T21:46:04.683 に答える
1

はい、thisJavaScript のキーワードは現在のスコープ内の要素を意味します。

于 2013-03-29T21:56:09.330 に答える
0

簡単な説明:this関数の呼び出し方法に応じて変化する関数のコンテキストです。例えば:

function myfunc() {
  console.log(this.toString());
}

myfunc(); //=> [object Window] 
myfunc.call('Hello World'); //=> Hello World

プロトタイプを使用する場合thisは、現在のインスタンスを参照します。jQuery では、次のように機能します (非常に単純化されています)。

(function(win) {

  // Constructor
  function jQuery(selector) {

  }

  // Shortcut to create news instances
  function $(selector) {
    return new jQuery(selector);
  }

  // Public methods
  jQuery.prototype = {

    // All methods 'return this' to allow chaining
    // 'this' is the jQuery instance
    method: function() {
      return this;
    }

  };

  win.$ = $; // expose to user

}(window));

したがって、これを行うと、参照するもの (通常は DOM 要素)$(this)の新しい jQuery インスタンスを作成するだけなので、プロトタイプを継承してパブリック メソッドを使用できます。this

于 2013-03-29T21:57:32.280 に答える