Cover by Cody Lindley

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

O'Reilly logo

Chapter 6. The this Keyword

Conceptual Overview of this and How It Refers to Objects

When a function is created, a keyword called this is created (behind the scenes), which links to the object in which the function operates. Said another way, this is available to the scope of its function, yet is a reference to the object of which that function is a property/method.

Let’s take a look at the cody object from Chapter 1 again:

Live Code

<!DOCTYPE html><html lang="en"><body><script>

var cody = {
   living : true,
   age : 23,
   gender : 'male',
   getGender : function() {return cody.gender;}
};

console.log(cody.getGender()); // logs 'male'

</script></body></html>

Notice how inside of the getGender function, we are accessing the gender property using dot notation (e.g., cody.gender) on the cody object itself. This can be rewritten using this to access the cody object because this points to the cody object.

Live Code

<!DOCTYPE html><html lang="en"><body><script>

var cody = {
   living: true,
   age: 23,
   gender: 'male',
   getGender: function() {return this.gender;}
};

console.log(cody.getGender()); // logs 'male'

</script></body></html>

The this used in this.gender simply refers to the cody object on which the function is operating.

The topic of this can be confusing, but it does not have to be. Just remember that, in general, this is used inside of functions to refer to the object the function is contained within, as opposed to the function itself [exceptions include using the new keyword or call() and apply()

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required