Sco*_*ttS 4 javascript parameters binding arguments dynamic
假设你有一些函数someFunc()已经在javascript中定义,可能有也可能没有定义自己的参数集.是否可以编写另一个函数来添加必需的参数并将该参数设置为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);
Run Code Online (Sandbox Code Playgroud)
现在someFunc的定义大致如下:
someFunc = function(x, arg1, arg2...) {
x = 20;
Do stuff...
}
Run Code Online (Sandbox Code Playgroud)
我真正想要的是不仅将这个值绑定到一个函数(我已经知道如何实现),而且还将另一个对象引用绑定到同一个函数(该函数未提前知道,因为用户将定义它,但是然后用户的代码可以访问这个第二个对象引用,以便在它们自己的函数中使用).所以在我上面的简单例子中,"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);
Run Code Online (Sandbox Code Playgroud)