Да. Именно так работает js. Откуда функцию вызовешь - такой this и будет, что весьма удобно.
function func(){ alert(this) }
var obj1 = {
toString: function(){return '[object Obj1]'},
func : func
}
var obj2 = {
toString: function(){return '[object Obj2]'},
func: func,
obj1: obj1
}
func() //Window ибо равносильно window.func()
obj1.func() //Obj1
obj2.func() //Obj2
obj2.obj1.func() //Obj1