0

I am currently learning jQuery, and just started implementing "this" keyword. I understand what it does in jQuery, but does it have the same functionality in javascript, as a scope reference?

FluxEngine
  • 10,860
  • 13
  • 49
  • 78
  • Possible duplicates: http://stackoverflow.com/questions/3127429/javascript-this-keyword, http://stackoverflow.com/questions/133973/how-does-this-keyword-work-within-a-javascript-object-literal – levelnis Mar 29 '13 at 21:48
  • https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/this – undefined Mar 29 '13 at 21:48

3 Answers3

3

this is not some jQuery magic, it is a JavaScript keyword.

Niet the Dark Absol
  • 301,028
  • 70
  • 427
  • 540
1

Yes, this keyword in JavaScript still means the element in the current scope.

palaѕн
  • 64,836
  • 15
  • 100
  • 121
0

Short explanation: this is the context of a function that can change depending on how that function is called. For example:

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

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

When using prototypes, this refers to the current instance. In jQuery it works something like this (very simplified):

(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));

So when you do this $(this) you're just creating a new jQuery instance of whatever this refers to (usually a DOM element) so you can inherit the prototype and use the public methods.

elclanrs
  • 85,039
  • 19
  • 126
  • 159