假设您已经在javascript中定义了一些函数someFunc(),该函数可能会也可能不会定义自己的参数集。是否可以编写另一个函数来添加必需的参数并将该参数设置为someFunc()的默认值?就像是:
var someFunc = function(arg1, arg2 ...){ Do stuff...}
var addRequired = function(argName, argValue, fn) {
Add the required default arg to a function...
}
addRequired("x", 20, someFunc);
现在someFunc大致定义如下:
someFunc = function(x, arg1, arg2...) {
x = 20;
Do stuff...
}
我真正想要的是不仅要将此值绑定(bind)到一个函数(我已经知道如何实现),而且还要将另一个对象引用绑定(bind)到该相同的函数(该函数不会被用户提前知道)定义它,但是用户代码可以访问此第二个对象引用以在其自己的函数中使用)。因此,在上面的简单示例中,“20”值实际上是对象引用。
谢谢你尽你所能的帮助。
最佳答案
像这样:
function addParameter(func, argIndex, argValue) {
return function() {
arguments[argIndex] = argValue;
arguments.length = Math.max(arguments.length, argIndex);
return func.apply(this, arguments);
};
}
someFunc = function(x, arg1, arg2...) {
Do stuff...
}
someFunc = addParameter(someFunc, 0, someValue);