2.10 āĻĻāĻŋāϏ (this) āĻāĻŋāĻāϝāĻŧāĻžāϰā§āĻĄ
āĻāĻāĻā§ āĻāϞā§āĻāύāĻž āĻāϰāϤ⧠āϝāĻžāĻā§āĻāĻŋ âthisâ āĻāĻŋāĻā§āĻžāϰā§āĻĄ āύāĻŋā§ā§āĨ¤ āĻāĻžāĻāĻžāϏā§āĻā§āϰāĻŋāĻĒā§āĻā§ āĻāĻāĻāĻŋ āĻŽāĻžāϰāĻžāϤā§āĻŽāĻ āĻā§ā§āϰ āύāĻžāĻŽ āĻšāĻā§āĻā§ âthisâāĨ¤ āĻāĻāĻŋ āĻā§āĻŦāĻ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻāĻāĻāĻž āĻāĻžāϰā§āĻŽāϏ āϝāĻžāϰ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻĒāϰāĻŋāώā§āĻāĻžāϰ āϧāĻžāϰāĻŖāĻž āĻĨāĻžāĻāĻž āĻāĻāĻŋāϤ āĻŦāϞ⧠āĻāĻŽāĻŋ āĻŽāύ⧠āĻāϰāĻŋāĨ¤ āĻļā§āϰā§āϰ āĻĻāĻŋāĻā§ āĻāĻāĻž āύāĻŋā§ā§ āĻĒā§āϰāĻžā§ āϏāĻŦāĻžāĻ āĻāĻāĻā§ āĻāύāĻĢāĻŋāĻāĻļāύ⧠āĻā§āĻā§āĨ¤ āĻāĻžāϰāĻŖ āĻāĻāĻŋ āĻāĻ āĻāĻ āϏāĻŽā§ āĻāĻ āĻāĻ āϰāĻāĻŽ āĻāĻāĻāĻĒā§āĻ āĻĻā§ā§āĨ¤ āĻāĻŽāĻžāĻĻā§āϰ āĻŦā§āĻāϤ⧠āĻšāĻŦā§ āĻā§āύ āĻāĻŦāĻ āĻāĻāύ āĻāĻŋ āĻāĻāĻāĻĒā§āĻ āĻĻā§ā§āĨ¤ āĻāĻŽāĻŋ āĻā§āώā§āĻāĻž āĻāϰāĻŦā§ āĻŦā§āϝāĻžāĻĒāĻžāϰāĻāĻžāĻā§ āϝāϤāĻāĻž āϏāĻŽā§āĻāĻŦ āϏāĻšāĻāĻāĻžāĻŦā§ āϞā§āĻāĻžāϰ āĻāύā§āϝ⧠āϝāĻžāϤ⧠āĻāϰ⧠āĻāĻ âthisâ āύāĻŋā§ā§ āĻāĻāĻā§āϰ āĻĒāϰ āĻĨā§āĻā§ āĻāĻžāϰā§āϰ āĻā§āύ āĻĒā§āϰāĻāĻžāϰ āĻāύāĻĢāĻŋāĻāĻļāύ āύāĻž āĻĨāĻžāĻā§ āĻāĻŦāĻ āĻāĻžāϰā§āϰ āĻŽāĻžāĻĨāĻžāϰ āĻāĻĒāϰ āĻĻāĻŋā§ā§ āύāĻž āϝāĻžā§āĨ¤
āĻāϞā§āύ āĻāĻāĻāĻž āĻāĻĻāĻžāĻšāϰāĻŖ āĻĻāĻŋā§ā§ āĻļā§āϰ⧠āĻāϰāĻž āϝāĻžāĻāĻ
function myFunc() {
console.log(this);
}
myFunc();
āĻāĻāĻā§ āĻāĻŋāύā§āϤāĻž āĻāϰā§āύ āϤ⧠āĻāĻāĻžāύ⧠myFunc() āĻĢāĻžāĻāĻļāύāĻāĻŋāĻā§ āĻā§ āĻāϞ āĻāϰāϤā§āĻā§āĨ¤ āϝāĻĻāĻŋ āĻāĻāĻāĻž āϧāϰāϤ⧠āĻĒāĻžāϰā§āύ āϤāĻžāĻšāϞ⧠myFunc() āĻāϰ āĻāĻāĻāĻĒā§āĻ āĻāĻŋ āĻšāĻŦā§ āϏā§āĻāĻāĻžāĻ āĻŦā§āĻāϤ⧠āĻĒāĻžāϰāĻŦā§āύāĨ¤ āĻāĻāĻā§ āĻāĻŋāύā§āϤāĻž āĻāϰā§āύ āϏāĻŽā§ āύāĻŋā§ā§āĨ¤
āĻāĻļāĻž āĻāϰāĻŋ, āĻāĻŋāύā§āϤāĻž āĻāϰā§āĻā§āύ āĻāĻŦāĻ āϧāϰāϤā§āĻ āĻĒā§āϰā§āĻā§āύāĨ¤ āϝāĻĻāĻŋ āύāĻž āĻĒāĻžāϰā§āύ āϤāĻžāĻšāϞ⧠āĻā§āύ āϏāĻŽāϏā§āϝāĻž āύā§āĻāĨ¤ āĻāĻāĻāĻž āĻŦā§āϝāĻžāĻĒāĻžāϰ āϏāĻŦ āϏāĻŽā§ āĻŽāĻžāĻĨāĻžā§ āϰāĻžāĻāĻŦā§āύ āϝ⧠âthisâ āĻāϰ āĻā§āϝāĻžāϞ⧠āĻāĻŋ āĻšāĻŦā§ āϏā§āĻāĻž āύāĻŋāϰā§āĻāϰ āĻāϰ⧠āĻā§āĻĨāĻžā§ āĻāĻŦāĻ āĻāĻŋāĻāĻžāĻŦā§ āĻāϞ āĻšāĻā§āĻā§ āϤāĻžāϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰā§āĨ¤ āĻāĻĒāϰā§āϰ āĻā§āĻĄā§ myFunc() āĻā§ āĻāϞ āĻāϰāϤā§āĻā§ window āĻ āĻŦāĻā§āĻā§āĻāĨ¤ āĻāĻžāϰāĻŖ āĻŦā§āϰāĻžāĻāĻāĻžāϰ⧠āϏāĻŦ āĻāĻŋāĻā§ āĻŦāĻžāĻ āĻĄāĻŋāĻĢāϞā§āĻ window āĻ āĻŦāĻā§āĻā§āĻā§āϰ āĻāύā§āĻĄāĻžāϰ⧠āϰāĻžāύ āĻšā§āĨ¤ āϤāĻžāϰ āĻŽāĻžāύ⧠āĻšāĻā§āĻā§, āϝ⧠āϝāĻžāϰ āĻŽāĻžāϧā§āϝāĻŽā§ āĻāϞ āĻšāĻŦā§ âthisâ āϤāĻžāĻā§ āĻĻā§āĻāĻžāĻŦā§ āĻāĻāĻāĻĒā§āĻ āĻšāĻŋāϏāĻžāĻŦā§āĨ¤
āϝā§āĻšā§āϤ⧠myFunc() āĻā§ window āĻāϞ āĻāϰāϤā§āĻā§ āϤāĻžāĻ myFunc() āĻāϰ āĻāĻŋāϤāϰ⧠āĻĨāĻžāĻāĻž âthisâ â window āĻāϰ āϏāĻŦ āĻā§āϝāĻžāϞā§āĻā§ āĻāĻāĻāĻĒā§āĻ āĻšāĻŋāϏāĻžāĻŦā§ āĻĻā§āĻāĻžāĻā§āĻā§āĨ¤
āĻāĻŽāϰāĻž āύāĻž āĻ āύā§āĻ āĻāĻžāϞ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻžāϰāĨ¤ āϤāĻžāĻ âuse strictâ; āĻŽā§āĻĄā§ āĻāĻĒāϰā§āϰ āĻā§āĻĄāĻāĻŋ āĻāĻŦāĻžāϰ āϰāĻžāύ āĻāϰā§āύ āĻāĻŦāĻ āĻĻā§āĻā§āύ āĻāĻŋ āĻšā§āĨ¤
āĻāĻāĻŦāĻžāϰ āĻāϞā§āύ āĻāϰā§āĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āĻĻā§āĻāĻŋāĻ
let Person = {
name: "Shahan's Diary",
sayName: function () {
console.log(this);
},
};
Person.sayName();
āĻāĻāĻŦāĻžāϰ āĻŦāϞā§āύ āϤ⧠āĻāĻĒāϰā§āϰ āĻā§āĻĄāĻāĻŋāϰ āĻāĻāĻāĻĒā§āĻ āĻāĻŋ āĻšāĻŦā§āĨ¤ āϝāĻžāϰāĻž āĻŦāϞāϤ⧠āĻĒāĻžāϰāĻŦā§āύ āϤāĻžāĻĻā§āϰ āĻāύā§āϝ⧠āĻĨāĻžāĻāĻŦā§ āĻāĻŽāĻžāϰ āĻĒāĻā§āώ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻāĻā§āϞā§āĻāĨ¤ āϝāĻĻāĻŋ āĻāĻĒāϰā§āϰ āĻŦāϞāĻž āĻāĻĨāĻžāĻā§āϞāĻž āĻāĻžāϞ āĻāϰ⧠āĻĒā§ā§ āĻĨāĻžāĻā§āύ, āĻŦā§āĻāϤ⧠āĻā§āύ āĻ āϏā§āĻŦāĻŋāϧāĻž āĻšāĻā§āĻžāϰ āĻāĻĨāĻž āύāĻžāĨ¤ āĻāĻĒāϰā§āϰ āĻā§āĻĄā§āϰ āĻāĻāĻāĻĒā§āĻ āĻāĻŋ āĻšāĻŦā§āĨ¤ āĻļā§āϧ⧠āĻāĻāĻāĻž āĻāĻĨāĻž āĻāĻžāϞ āĻāϰ⧠āĻŽāύ⧠āϰāĻžāĻāĻŦā§āύ āĻā§āύ āĻĢāĻžāĻāĻļāύ āĻāϞ āĻāϰāĻžāϰ āϏāĻŽā§ āĻĢāĻžāĻāĻļāύā§āϰ āύāĻžāĻŽā§āϰ āĻĄāĻā§āϰ āĻāĻā§ āϝ⧠āĻ āĻŦāĻā§āĻā§āĻ āύāĻžāĻŽāĻāĻž āĻĨāĻžāĻāĻŦā§ āϤāĻžāϰ āĻā§āϝāĻžāϞā§āĻ āĻĻā§āĻāĻžāĻŦā§āĨ¤ āĻšā§āϝāĻžāĻ, āĻāĻŽāĻŋ āϝāĻĻāĻŋāĻ āĻ āĻŦāĻā§āĻā§āĻā§āϰ āĻāĻŋāϤāϰ⧠āĻĨāĻžāĻāĻž āĻĢāĻžāĻāĻļāύāĻā§ āĻĢāĻžāĻāĻļāύ āĻŦāϞāϤā§āĻāĻŋ āĻļā§āϧ⧠āĻŦā§āĻāĻžāϰ āϏā§āĻŦāĻŋāϧāĻžāϰ āĻāύā§āϝā§āĨ¤ āĻāĻāĻž āĻĢāĻžāĻāĻļāύ āĻšāĻŦā§ āύāĻž, āĻāĻžāϰāĻŖ āĻ āĻŦāĻā§āĻā§āĻā§āϰ āĻāĻŋāϤāϰ⧠āĻĨāĻžāĻāĻž āϏāĻŦ āĻĢāĻžāĻāĻļāύāĻā§ āĻŦāϞāĻž āĻšā§ āĻŽā§āĻĨāĻĄāĨ¤ āĻāĻĒāϰā§āϰ āĻā§āĻĄā§āϰ āĻāĻāĻāĻĒā§āĻ āĻšāĻŦā§ āύāĻŋāĻā§āϰ āĻĻā§āĻā§āĻž āϏā§āύāĻŋāĻĒā§āĻā§āϰ āĻŽāϤāĨ¤
let Person = function (fName, lName) {
this.fName = fName;
this.lName = lName;
this.sayInfo = function () {
return console.log("Hi there, Welcome to " + this.fName + " " + this.lName);
};
};
let person1 = new Person("Shahan's", "Diary");
person1.sayInfo(); // Hi there, Welcome to Shahan's Diary
āĻāĻļāĻž āĻāϰāĻŋ, āĻāĻĒāύāĻžāĻĻā§āϰ âthisâ āĻāϰ āĻŦā§āϏāĻŋāĻ āϧāĻžāϰāĻŖāĻžāĻāĻž āĻāĻāύ āĻĒāϰāĻŋāώā§āĻāĻžāϰ āĻšā§ā§āĻā§āĨ¤ āĻāĻāύ āĻĨā§āĻā§ āĻĻā§āĻāϞā§āĻ āĻŦā§āĻāĻŦā§āύ āϝ⧠âthisâ āĻāĻŋ āĻāĻžāĻ āĻāϰāĻā§āĨ¤ āĻšā§āϝāĻžāĻ, āĻāĻ āϞā§āĻāĻžāĻāĻž āĻĒā§ā§āĻ āĻāĻĒāύāĻŋ âthisâ āĻāϰ āĻŽāĻžāϏā§āĻāĻžāϰ āĻšā§ā§ āϝāĻžāĻŦā§āύ āύāĻžāĨ¤ āĻāϰ āĻāϰā§āĻāĻā§ āĻ ā§āϝāĻžāĻĄāĻāĻžāύā§āϏāĻĄ āĻŦā§āϝāĻŦāĻšāĻžāϰ āϰā§ā§āĻā§āĨ¤ āϏā§āĻāĻž āĻāĻĒāύāĻžāĻĻā§āϰ āĻāύā§āϝ⧠āϰā§āĻā§ āĻĻāĻŋāϞāĻžāĻŽāĨ¤ āĻāĻāĻā§ āĻāώā§āĻ āĻāϰ⧠āύāĻŋāĻ āĻĻāĻžāϝāĻŧāĻŋāϤā§āĻŦā§ āĻĻā§āĻā§ āύāĻŋāĻŦā§āύāĨ¤
Function context āĻ this with âuse strictâ mode
ÂÂÂfunction show() {  “use strict”;  console.log(this === undefined); // true  function display() {    console.log(this === undefined); // true  }  display();}Âshow();ÂÂ
- Function context āĻ this without âuse strictâ modeÂÂÂfunction show() {  console.log(this === window); // true}Âshow(); // truewindow.show(); //trueÂ
Â
- Global context āĻ thisÂÂÂconsole.log(this === window); // truethis.color = “Green”;console.log(this.color); // ‘Green’console.log(window.color); // ‘Green’Â
Â
- this āϏā§āĻ object āĻā§ āĻāϞā§āϞā§āĻ āĻāϰ⧠āĻĢāĻžāĻāĻļāύāĻāĻŋ āϝāĻžāϰ property.āĻ
āύā§āϝ āĻāĻĨāĻžāϝāĻŧ, this āϏā§āĻ object āĻā§ refer āĻāϰ⧠āϝāĻž āĻŦāϰā§āϤāĻŽāĻžāύ⧠āĻĢāĻžāĻāĻļāύāĻāĻŋāĻā§ āĻāϞ āĻāϰāĻā§āĨ¤
āϧāϰā§āύ āĻāĻĒāύāĻžāϰ counter āύāĻžāĻŽāĻ āĻāĻāĻāĻŋ object āĻāĻā§āĨ¤ āĻāĻ counter object āĻ next() āύāĻžāĻŽā§ āĻāĻāĻāĻŋ method āĻāĻā§āĨ¤
āϝāĻāύ āĻāĻĒāύāĻŋ next() method āĻāϞ āĻāϰā§āύ, āĻāĻĒāύāĻŋ āĻāĻ object āĻāĻŋ āĻ ā§āϝāĻžāĻā§āϏā§āϏ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
ÂÂÂconst counter = {  count: 0,  next: function () {    return ++this.count;  },};Âcounter.next(); // 1counter.next(); // 2counter.next(); // 3
- āĻāĻžāĻāĻžāϏā§āĻā§āϰāĻŋāĻĒā§āĻā§Â āĻĻāĻŋāϏ (this) āĻā§āĻāϝāĻŧāĻžāϰā§āĻĄ āĻāĻŋ?
- āύāĻŋāĻā§āϰ āĻā§āĻĄā§āϰ āĻāĻāĻāĻĒā§āĻ āĻāĻŋ āĻšāĻŦā§?ÂÂÂconst object = {  message: ‘Hello, World!’,  getMessage() {    const message = ‘Hello, Earth!’;    return this.message;  },};console.log(object.getMessage());Â
Â
- āύāĻŋāĻā§āϰ āĻā§āĻĄā§āϰ āĻāĻāĻāĻĒā§āĻ āĻāĻŋ āĻšāĻŦā§?ÂÂÂfunction Pet(name) {  this.name = name;  this.getName = () => this.name;}const cat = new Pet(‘Fluffy’);console.log(cat.getName()); // What is logged?const { getName } = cat;console.log(getName()); // What is logged?Â
Â
- āύāĻŋāĻā§āϰ āĻā§āĻĄā§āϰ āĻāĻāĻāĻĒā§āĻ āĻāĻŋ āĻšāĻŦā§?ÂÂÂvar length = 4;function callback() {  console.log(this.length); // What is logged?}const object = {  length: 5,  method(callback) {    callback();  },};object.method(callback, 1, 2);