У вас же this везде ссылается на корневой объект, значит ничего не мешает получить вложенный и работать с его свойствами:
function Mock() {
this.val = 'val';
this.log = {
start: function() {
this.log.timer = setInterval(function() {
console.log(this.val);
}.bind(this), 1000);
}.bind(this),
stop: function() {
clearInterval(this.log.timer);
delete this.log.timer;
}.bind(this)
};
}
Но конечно лучше просто разделить сущности:
function Timer(handler, interval) {
this.handler = handler;
this.interval = interval;
}
Timer.prototype.start = function () {
this.timer = setInterval(this.handler, this.interval);
};
Timer.prototype.stop = function () {
clearInterval(this.timer);
delete this.timer;
};
function Mock() {
this.val = 'val';
this.log = new Timer(function () {
console.log(this.val);
}.bind(this), 1000);
}