【发布时间】:2010-09-02 19:23:33
【问题描述】:
考虑以下示例:
var funcToCall = function() {...}.bind(importantScope);
// some time later
var argsToUse = [...];
funcToCall.apply(someScope, argsToUse);
我想保留 funcToCall 的“importantScope”。然而,我需要使用 apply 来应用未知数量的参数。 “应用”要求我提供“someScope”。我不想更改范围,我只想将参数应用于函数并保留其范围。我该怎么做?
【问题讨论】:
-
是的:它是在 ECMAScript 5 中标准化的。
-
我正在使用 Prototype 框架。
-
好吧,这就是我的想法(抱歉删除了评论)。我认为 OP 不是在谈论 JavaScript 1.8.5 - 目前不受任何主要浏览器的支持。
-
换句话说:是否可以找到函数的作用域对象?
-
@Nick:你自己试过这个简单的例子吗?无论您将什么传递给
apply,funcToCall始终绑定到importantScope。
标签: javascript