thisis determined by the invocation of the function.  (aka, the way the function is called)  See my other answers for more details.
var myObject = {
    name: 'Tyrion',
    alias: 'imp',
    _self: function () {
        return this;
    },
    // I know this context is fine, but let's pretend it's being called from elsewhere.
    getAlias: function () {
        var _self = myObject._self();
        return _self.alias;
    }
};
//member invocation
console.log(myObject._self() === myObject); // true
var aFucntion = myObject._self;
//functional invocation
console.log(aFucntion() === myObject); // false
console.log(aFucntion() === this); //true
Instead of worrying about the context of this, a workaround is to assign this to a value in an outer function, and then access that value in an inner functions.  This is called closure
var MyObject = function (title) {
    var _self = this,
        helper = function () {
            return _self.title + " " + _self.name;
        };
    this.title = title;
    this.fullName = function () {
        return helper(); //functional invocation
        //if helper used this, this would be global
    };
    this.name = 'Tyrion';
    this.alias = 'imp';
    this.getAlias = function () {
        //access to _self through closure
        return _self.alias;
    };
};
//constructor invocation
var aObject = new MyObject("Mr.");
console.log(aObject.getAlias()); //imp
console.log(aObject.fullName()); //Mr. Tyrion
FYI:
If _self returns myObject, context would not mater.
_self: function () {
        return myObject;
    }