gpt4 book ai didi

javascript - 将参数和默认值动态绑定(bind)到 Javascript 中的现有函数

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:28:56 25 4
gpt4 key购买 nike

假设您已经在 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...
}

我真正想要的是不仅this值绑定(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);

关于javascript - 将参数和默认值动态绑定(bind)到 Javascript 中的现有函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3064800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com