如果我要使用 Function
构造函数创建一个新的 function
,除了 window
之外,我怎样才能给它一个非临时范围来访问>(意味着作用域只需评估一次,而不是每次调用函数时)?目的是构造多个需要一些相当昂贵的计算的变量,我不想每次调用函数时都重建它们,但我也不想将它们存储在 window
中。有什么想法吗?
最佳答案
您可以使用 bind
关键字将函数绑定(bind)到特定上下文:
var context = {};
var f = new Function("args", "return this").bind(context);
f(); // context
由于绑定(bind)是在 ECMA 5th 中定义的,因此它可能并不存在于所有浏览器中,here's a workaround
关于javascript - 如何在 JavaScript 中为函数构造函数使用作用域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13913401/