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