Этот вопрос не имеет большого смысла с точки зрения языка, поскольку функция может существовать во многих объектах.
var a = { name : 'a' },
b = { name : 'b' },
c = { name : 'c' };
a.x = function () { alert( this.name ); };
c.x = b.x = a.x; // a, b, and c all reference the same function
Вы можете вызывать функцию x
с любым контекстом, который вам нужен:
a.x(); // alerts "a" because "this" is object a
b.x(); // alerts "b" because "this" is object b
a.x.call( b ); // alerts "b" because "this" is object b (via parameter)
Вы можете манипулировать этим поведением, чтобы работать на вас:
var b = function ( method ) {
// parent = this;
};
b.call( A, A.x );
Однако внутри функции нет способа узнать, какому объекту она назначена, поскольку это не обязательно одно место.