п кажется я понял, что вы хотите теперь:
A=
{
'func':function(that)
{
//that указывает на объект, вызвавший функцию
with(that)
{
alert(a)
//тут переменная a является свойством a вызвавшего объекта
}
},
'func2':function()
{
//this указывает на объект, вызвавший функцию
with(this)
{
alert(b)
//тут переменная a является свойством b вызвавшего объекта
}
}
}
B_proto=
{
'function':function()
{
console.log([this,this==window.B1,this==window.B2])//this указывает на B1, вызвавший функцию
A.func(this)
A.func2.apply(this,[])
}
}
function B()
{
//functio
this.a='qwerty';
this.b='йцукен';
}
B.prototype=B_proto;
B1=new B();
B1.function()
B2=new B();
B2.a='asdfgh'
B2.b='фывапр'
B2.function()