What is This?

Demonstration of This

by Jeremy Likness

JavaScript

var obj1 = {
    foo: "this",
    bar: function () {
        return this.foo;
    }
}, obj2 = {
    foo: "that",
    bar: obj1.bar
},
obj3 = {
    foo: "the other"
};

obj3.bar = obj1.bar.bind(obj1);

console.log(obj1.bar());
console.log(obj2.bar());
console.log(obj3.bar());
console.log(obj1.bar.call(obj3));