function checkThis() { return this; } console.log(checkThis()); // ? // --------------------------------------- var obj = { prop: "hello", getProp: function() { return this.prop; } }; console.log(obj.getProp()); // ? // --------------------------------------- function myFunc() { return this.a; } var obj = { a: 'obj-a', myFunc: myFunc }; const a = 'global-a'; // ES6 <<<< GOOGLE IT console.log(myFunc()); // ? // --------------------------------------- var obj1 = { name: "obj1", print: function() { console.log(this.name); } }; var obj2 = { name: "obj2" }; obj2.print = obj1.print; obj2.print(); // ? // --------------------------------------- function outer() { var inner = () => { console.log(this); // ES6 <<<< GOOGLE IT } inner(); } outer.call("Hello"); // ? // --------------------------------------- var obj = { a: 1, getA: function() { return function() { return this.a; } } }; var retrieveA = obj.getA(); console.log(retrieveA()); // ? // --------------------------------------- var cat = { sound: "meow", speak: function() { return this.sound; } }; var dog = { sound: "woof" }; console.log(cat.speak.call(dog)); // ? // --------------------------------------- var car = { brand: "Toyota", getBrand: function() { return this.brand; } }; var getCarBrand = car.getBrand; console.log(getCarBrand()); // ?