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:
<!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.
<!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()
Get JavaScript Enlightenment now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.