事実
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
別のオブジェクトにバインドするにはどうすればよいですか?
ありがとう。