JavaScript is a powerful and versatile language, with a lot of features and concepts to master. One of the most important concepts to understand is the this keyword. In this blog post, we will dive into how the this keyword works inside arrow functions and how it differs from regular functions.
In JavaScript, the this keyword inside a function refers to the object that the function is a property of or the object that the function is called on. However, the behavior of the this keyword inside an arrow function is different from regular functions.
In an arrow function, the this keyword is lexically scoped, meaning it takes on the value of the this keyword in the surrounding code. The this keyword in an arrow function does not get rebound when the function is invoked, unlike regular functions. It keeps the same value as the this keyword in the surrounding code.
For example:
const obj = { name: 'John', printName: () => { console.log(this.name); } }; obj.printName(); //undefined
In this example, the this keyword inside the arrow function refers to the this of the global scope, which is undefined because the name property is not defined on the global object.
Another example:
const obj = { name: 'John', printName() { console.log(this.name); }, printNameWithArrow: () => { console.log(this.name); } }; obj.printName(); //John obj.printNameWithArrow(); //undefined
In this example, the printName function will output 'John' because this keyword refers to the obj object. But printNameWithArrow function will output undefined because it has not access to obj object this keyword.
Because of this behavior, arrow functions are not suitable for methods that need to be bound to a specific object, and they can't be used as constructors, or with new keyword.
Conclusion :
It's important to keep in mind that arrow functions' behavior with this keyword is different from regular functions. This means that if you want to use the this keyword inside a function, you should use a regular function instead of an arrow function. Understanding the this keyword in arrow functions is crucial for writing efficient and maintainable code in JavaScript. With this knowledge, you can make better use of JavaScript's powerful features and write more robust and readable code.
Learn All in Tamil © Designed & Developed By Tutor Joes | Privacy Policy | Terms & Conditions