DEV Community

Cover image for 'this' keyword in JavaScript
Debajit Mallick
Debajit Mallick

Posted on • Edited on

17 3

'this' keyword in JavaScript

If you are new to the world of JavaScript, then you may find 'this' keyword a little bit tricky. In this blog, I will discuss some basics of 'this' keyword, how we can use and its problems.

What is 'this'?

Generally, this keyword refers to the object it belongs to or the parent object. Now, it also varies on which context we use it. Like, in a method, 'this' refers to its parent object. Alone, 'this' refers to the global object. In a function, 'this' refers to the global object. But in a function with 'strict' mode, 'this' refers to undefined. In an event, 'this' refers to the element that received the event. Ex:-

Alt Text

But sometimes it creates a lot of confusion. Ex:-

Alt Text

When we are using 'this' in the setTimeout it creates its context for 'this'. So it isn't able to access 'this' of the outer scope and bound to its scope. As 'this' is not defined within the function, the output is undefined. There are two ways to resolve this problem.

  • Using another variable: We can create another variable inside the function and use that to access id.

Alt Text

  • Using the arrow function: We can also use the arrow function to resolve this problem. As the arrow function doesn't create its own context of 'this', we can access the 'this' of its parent.

Alt Text

If you like my blogs and want to connect with me, follow me on LinkedIn and Twitter.

Top comments (6)

Collapse
 
valeriavg profile image
Valeria

One can also use bind method to attach different this to a function or use call or apply to execute function with specified this.

Collapse
 
debajit13 profile image
Debajit Mallick

That's great! thank you, Valeria, I will surely try these methods also.

Collapse
 
bruce_taotao profile image
bruce_taotao • Edited

Wow,that's greate, Thank you

Collapse
 
debajit13 profile image
Debajit Mallick

Thank you

Collapse
 
irochkaz profile image
Iryna Zaletko

In the first example, there is an error in the fname and firstName

Collapse
 
debajit13 profile image
Debajit Mallick

Thank you, Iryna for mentioning that error.

Cloudinary image

Optimize, customize, deliver, manage and analyze your images.

Remove background in all your web images at the same time, use outpainting to expand images with matching content, remove objects via open-set object detection and fill, recolor, crop, resize... Discover these and hundreds more ways to manage your web images and videos on a scale.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay