Vivasoft-logo

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();

				
			

āĻāχāĻŦāĻžāϰ āĻŦāϞ⧁āύ āϤ⧋ āωāĻĒāϰ⧇āϰ āϕ⧋āĻĄāϟāĻŋāϰ āφāωāϟāĻĒ⧁āϟ āĻ•āĻŋ āĻšāĻŦ⧇āĨ¤ āϝāĻžāϰāĻž āĻŦāϞāϤ⧇ āĻĒāĻžāϰāĻŦ⧇āύ āϤāĻžāĻĻ⧇āϰ āϜāĻ¨ā§āϝ⧇ āĻĨāĻžāĻ•āĻŦ⧇ āφāĻŽāĻžāϰ āĻĒāĻ•ā§āώ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āϚāϕ⧋āϞ⧇āϟāĨ¤ āϝāĻĻāĻŋ āωāĻĒāϰ⧇āϰ āĻŦāϞāĻž āĻ•āĻĨāĻžāϗ⧁āϞāĻž āĻ­āĻžāϞ āĻ•āϰ⧇ āĻĒā§œā§‡ āĻĨāĻžāϕ⧇āύ, āĻŦ⧁āĻāϤ⧇ āϕ⧋āύ āĻ…āϏ⧁āĻŦāĻŋāϧāĻž āĻšāĻ“ā§ŸāĻžāϰ āĻ•āĻĨāĻž āύāĻžāĨ¤ āωāĻĒāϰ⧇āϰ āϕ⧋āĻĄā§‡āϰ āφāωāϟāĻĒ⧁āϟ āĻ•āĻŋ āĻšāĻŦ⧇āĨ¤ āĻļ⧁āϧ⧁ āĻāĻ•āϟāĻž āĻ•āĻĨāĻž āĻ­āĻžāϞ āĻ•āϰ⧇ āĻŽāύ⧇ āϰāĻžāĻ–āĻŦ⧇āύ āϕ⧋āύ āĻĢāĻžāĻ‚āĻļāύ āĻ•āϞ āĻ•āϰāĻžāϰ āϏāĻŽā§Ÿ āĻĢāĻžāĻ‚āĻļāύ⧇āϰ āύāĻžāĻŽā§‡āϰ āĻĄāĻŸā§‡āϰ āφāϗ⧇ āϝ⧇ āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āύāĻžāĻŽāϟāĻž āĻĨāĻžāĻ•āĻŦ⧇ āϤāĻžāϰ āĻ­ā§āϝāĻžāϞ⧁āχ āĻĻ⧇āĻ–āĻžāĻŦ⧇āĨ¤ āĻšā§āϝāĻžāρ, āφāĻŽāĻŋ āϝāĻĻāĻŋāĻ“ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āϰ āĻ­āĻŋāϤāϰ⧇ āĻĨāĻžāĻ•āĻž āĻĢāĻžāĻ‚āĻļāύāϕ⧇ āĻĢāĻžāĻ‚āĻļāύ āĻŦāϞāϤ⧇āĻ›āĻŋ āĻļ⧁āϧ⧁ āĻŦā§‹āĻāĻžāϰ āϏ⧁āĻŦāĻŋāϧāĻžāϰ āϜāĻ¨ā§āϝ⧇āĨ¤ āĻāϟāĻž āĻĢāĻžāĻ‚āĻļāύ āĻšāĻŦ⧇ āύāĻž, āĻ•āĻžāϰāĻŖ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āϰ āĻ­āĻŋāϤāϰ⧇ āĻĨāĻžāĻ•āĻž āϏāĻŦ āĻĢāĻžāĻ‚āĻļāύāϕ⧇ āĻŦāϞāĻž āĻšā§Ÿ āĻŽā§‡āĻĨāĻĄāĨ¤ āωāĻĒāϰ⧇āϰ āϕ⧋āĻĄā§‡āϰ āφāωāϟāĻĒ⧁āϟ āĻšāĻŦ⧇ āύāĻŋāĻšā§‡āϰ āĻĻ⧇āĻ“ā§ŸāĻž āĻ¸ā§āύāĻŋāĻĒ⧇āĻŸā§‡āϰ āĻŽāϤāĨ¤

{name: “Shahan’s Diary”, sayName: f}
āĻāĻ–āύ āĻĻ⧇āĻ–āĻŦā§‹ āĻ•āύāĻ¸ā§āĻŸā§āϰāĻžāĻ•ā§āϟāϰ āĻĢāĻžāĻ‚āĻļāύ⧇ “this” āύāĻŋā§Ÿā§‡ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāĻž āϝāĻžā§ŸāĨ¤
				
					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(); // true
    window.show(); //true
     

     

  • Global context āĻ this
     
     
     
    console.log(this === window); // true
    this.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(); // 1
    counter.next(); // 2
    counter.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);