将函数的 return 插入另一个函数的参数 Javascript
Insert function's return into another function's parameters in Javascript
我正在创建 class 并且在传递到外部库函数时必须修改所有参数。例如:
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));
}
也就是最小化函数会return "x * zoom.x, y * zoom.y" 把它放在其他函数的参数中。我想知道是否可以用这种或类似的方式来完成
更新:由于 Javascript 现在有扩展运算符,它可以像
一样完成
myFunc(x, y, width, height) {
someFunc(...minimize(x, y));
anotherFunc(...minimize(x, y), ...minimize(width, height));
}
将一个函数的结果赋给一个变量,然后将该变量作为参数传递给另一个函数。
var args = minimize(x,y);
someFunc(args);
希望对您有所帮助
你的问题不是很清楚,但我猜你在找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));
我正在创建 class 并且在传递到外部库函数时必须修改所有参数。例如:
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));
}
也就是最小化函数会return "x * zoom.x, y * zoom.y" 把它放在其他函数的参数中。我想知道是否可以用这种或类似的方式来完成
更新:由于 Javascript 现在有扩展运算符,它可以像
一样完成myFunc(x, y, width, height) {
someFunc(...minimize(x, y));
anotherFunc(...minimize(x, y), ...minimize(width, height));
}
将一个函数的结果赋给一个变量,然后将该变量作为参数传递给另一个函数。
var args = minimize(x,y);
someFunc(args);
希望对您有所帮助
你的问题不是很清楚,但我猜你在找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));