Table of Contents:
Javascript this Operator
In Javascript, the ‘this’ keyword is not an operator, it’s a special keyword in JavaScript. It refers to the execution context of a function, which means it points to the object or value associated with the function. this can point to different things like the global object, an object instance, or the newly created object in a constructor.
Here’s how “this” keyword behaves in different use cases
Various Use Cases of ‘this’ Keyword
1. ‘this’ keyword inside an Object
When this is used inside an object method, it refers to the object itself.
Example:
const person = {
name: "intellipaat",
greet: function() {
// 'this' refers to the object
console.log("Hello, " + this.name);
}
};
person.greet();
Output:
2. ‘this’ keyword inside a Regular Function
In a regular function, this refers to the global object.
Example:
function greet() {
#In non-strict mode,
console.log(this);
console.log("Hello from the global context!");
}
greet();
Output:
In a regular function, when this is used, its behavior depends on the mode.
- In strict mode, this is set to undefined.
- In non-strict mode, this refers to the global object
3. ‘this’ keyword inside a Constructor
In a constructor, this refers to the new object being created.
Example:
function Person(name) {
// 'this' refers to the newly created Person object
this.name = name;
const person1 = new Person("hi from intellipaat");
console.log(person1.name);
Output:
4. ‘this’ keyword inside an Arrow Function
In arrow functions, this doesn’t refer to the object that calls the function. Instead, it uses this value from where the arrow function is written, which is usually the surrounding code or context.
Example:
const person = {
name: "intellipaat",
greet: () => {
#' this' does NOT refer to 'person’
console.log(this.name);
}
};
person.greet();
Output:
In arrow functions, this doesn’t refer to the object it is inside, but to the surrounding context. In this case, this refers to the global object. Since the global object doesn’t have a name property, this.name is undefined.
Let’s see why other options are considered as JavaScript operators:
Other JavaScript Operators
- New: The new operator in JavaScript is used to create new instances of objects. In simple terms, new helps you to create and set up objects based on a specific design or structure. Then, it links that object to the constructor function or class you’ve defined.
- delete: operator is used to remove a property from an object. It’s like erasing a specific characteristic of an object. For instance, if an object has multiple properties (e.g., name, age), you can use delete to remove one of those properties. It’s important to note that delete only works with properties on objects and doesn’t apply to variables or functions.
- Typeof: The operator is used to check the type of a value. For example, if you want to know whether something is a number, a string, or an object, you can use typeof to find out. It helps you identify the data type of a value, which is useful when you’re trying to handle different kinds of data in your code.
Conclusion
this keyword is not an operator but a special keyword in JavaScript, which refers to the context or object executing the function. Its value changes depending on where and how the function is called, such as inside an object, regular function, or constructor, so the value of this changes depending on where and how a function is called other than “this” All the different options are JavaScript operators