🧑‍💻 "this" binding


let person = {
  name: 'Abhinav',
  greet: function () {
    console.log(`Hello ${this.name}!`);

    let arrow = () => console.log(`Hello ${this.name} from arrow!`);
    arrow();

    let func = function () {
      console.log(`Hello ${this.name} from func!`);
    };
    func.call(this);
  },
};

person.greet();

let method = person.greet;
method();

let binded_func = person.greet.bind(person);
binded_func();
Output:
Hello Abhinav!
Hello Abhinav from arrow!
Hello Abhinav from func!
Hello undefined!
Hello undefined from arrow!
Hello undefined from func!
Hello Abhinav!
Hello Abhinav from arrow!
Hello Abhinav from func!