Pat*_*rts 0 javascript scope function
如果我function使用Function构造函数创建一个新的,我怎么能给它一个非临时范围来访问window(意味着范围只需要评估一次,而不是每次调用函数)?目的是构造需要一些非常昂贵的计算的多个变量,并且我不想在每次调用函数时重构它们,但我也不想将它们存储在中window.有任何想法吗?
您可以使用bind关键字将函数绑定到特定上下文:
var context = {};
var f = new Function("args", "return this").bind(context);
f(); // context
Run Code Online (Sandbox Code Playgroud)
由于绑定是在ECMA 5th中定义的,因此它可能并不存在于所有浏览器中,这是一种解决方法
| 归档时间: |
|
| 查看次数: |
3514 次 |
| 最近记录: |