gpt4 book ai didi

javascript - 在Javascript中将函数的返回值插入到另一个函数的参数中

转载 作者:行者123 更新时间:2023-11-27 23:59:30 25 4
gpt4 key购买 nike

我正在创建类,并且必须在传递到外部库函数时修改所有参数。例如:

myFunc(x, y, width, height) {
someFunc(x * zoom.x, y * zoom.y);
anotherFunc(x * zoom.x, y * zoom.y, width * zoom.x, height * zoom.y);
}

为了更简单地做到这一点,我尝试找到一种更轻松地传递此参数的方法,例如创建函数:

minimize(x, y) {
return [x * zoom.x, y * zoom.y];
}

然后像这样使用它:

myFunc(x, y, width, height) {
someFunc(minimize(x, y));
anotherFunc(minimize(x, y), minimize(width, height));
}

即最小化函数将返回“x * Zoom.x, y * Zoom.y”以将其放置在其他函数的参数中。我想知道是否可以用这种或类似的方式来完成

更新:由于 Javascript 现在有扩展运算符,因此可以像这样完成

myFunc(x, y, width, height) {
someFunc(...minimize(x, y));
anotherFunc(...minimize(x, y), ...minimize(width, height));
}

最佳答案

您的问题不是很清楚,但我猜您正在寻找apply:

someFunc = function(x, y) {
document.write("in someFunc: " + [x,y] + "<br>");
}

anotherFunc = function(x, y, width, height) {
document.write("in someFunc: " + [x,y,width,height] + "<br>");
}

minimize = function(x, y) {
return [x * 100, y * 200];
}

myFunc = function(x, y, width, height) {
someFunc.apply(this, minimize(x, y));
anotherFunc.apply(this, minimize(x, y).concat(minimize(width, height)));
}

myFunc(3, 4, 5, 6)

最后一个调用并不是特别优雅,为了使其看起来像您的示例中的那样,我们需要一个辅助函数:

Function.prototype.applyConc = function(thisArg) {
return this.apply(thisArg, [].concat.apply([], arguments).slice(1))
}

然后:

anotherFunc.applyConc(this, minimize(x, y), minimize(width, height));

关于javascript - 在Javascript中将函数的返回值插入到另一个函数的参数中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31943327/

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