別のオブジェクト「bar」でコールバックを呼び出す必要があるオブジェクト「foo」があり、コールバック内のコンテキストが「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();
通常は「call」または「apply」を使用してコンテキストを bar に切り替えますが、私の特定のケースでは、呼び出し時にfoo.doStuff()
コールバックがどこから来たのかに関する情報がありません。では、コンテキストを把握する別の方法はありますか (コールバック関数自体からなど)?