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