事实
Function('return this')()
总是返回全局(窗口)对象。Function.bind({})('return this')()
也返回全局对象。
我的目标
我想创建一个变体Function
。通过调用 的变体返回的匿名函数Function
应始终使用myObj
as this
。
如果 JavaScript 不会以这种特殊方式运行(请参阅The Facts),我会执行以下操作:
var myFun = Function.bind(myObj);
myFun
是我想要拥有的对象。现在我可以做到以下几点:
console.assert(myObj === myFun('return this')());
我的问题
- 为什么
Function
返回global
,即使在.bind()
将它转换为另一个对象之后? - 有解决方法吗?如何绑定
Function
到另一个对象?
谢谢。