javascript - 如何在 JavaScript 中为函数构造函数使用作用域?

标签 javascript function scope

如果我要使用 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/

相关文章:

C - 在没有参数的情况下调用用参数声明的函数?

r - 声明一个变量而不将其注册到环境中

javascript - 无法在 JavaScript Promise 中为变量设置正确的范围

javascript - 滚动 100px 后将 div 位置设置为固定?

javascript - ionic 2 : creating a ng-repeat inside ion-slides

javascript - 创建 Redux-saga 监听器

javascript - 条件渲染时避免调用组件内部的效果

c++ - 如何从函数返回具有多个值的数组? C++

c - 如果给出了错误的输入,我的函数应该包含什么才能返回 -1.0 的值?

函数结束后的 C++ 变量