我有一个案例,我有一个对象“foo”,它需要在另一个对象“bar”上调用回调,并且我需要回调中的上下文是“bar”的上下文。然而,更重要的是,除了从“bar”获得回调之外,“foo”不应该对此一无所知。
例子:
var foo =
{
message: "Hello foo",
doStuff: undefined
};
var bar =
{
message: "Hello bar",
callback = function ()
{
alert(this.message);
}
};
foo.doStuff = bar.callback;
foo.doStuff();
我意识到通常你会使用“调用”或“应用”将上下文切换到 bar,但在我的特殊情况下,在调用时foo.doStuff()
我不再有关于回调来自何处的信息。那么是否有另一种计算上下文的方法(比如从回调函数本身)?