var o = {
    value: 3
};

* Method invocation

When invoking a function that is a property of an object

o.incr = function () {
    this.value += 1;  // 'this' will be bound to 'o'
};
o.incr();  // Method invocation pattern

* Function invocation

When invoking a function that is not a property of an object

o.double = function () {
    var that = this;  // save the context! (Workaround)

    function helper() {
        //this.value *= 2;
        that.value *= 2;
    };

    helper();  // Function invocation pattern: 'this' will be bound to the global object
};
o.double();