事実
Function('return this')()常にグローバル(ウィンドウ)オブジェクトを返します。Function.bind({})('return this')()グローバルオブジェクトも返します。
私の目標
のバリエーションを作成したいFunction。そのバリエーションを呼び出すことによって返される無名関数は、Function常にmyObjとして使用する必要がありますthis。
JavaScriptがその特別な方法で動作しない場合(「事実」を参照)、次のようにします。
var myFun = Function.bind(myObj);
myFun私が所有したいオブジェクトです。これで、次のことができるようになります。
console.assert(myObj === myFun('return this')());
私の質問
- 別のオブジェクトに送信した後でも、なぜ
Function戻るのですか?global.bind() - 回避策はありますか?
Function別のオブジェクトにバインドするにはどうすればよいですか?
ありがとう。