有没有一种方法可以更改函数's来自另一个javascript函数的参数

Is there a way to change a function's arguments from another javascript function?

本文关键字:函数 参数 javascript 另一个 一种 方法 有没有      更新时间:2023-11-21

我正在尝试更改另一个函数内的函数参数,然后将其返回给被调用函数。我正在尝试这样的东西:

function func(a,b,c) {
    console.log(arguments, a, b, c); //[1, true, "a"] 1 true "a"
  arguments[0] = 2;
    console.log(arguments, a, b, c); //[2, true, "a"] 2 true "a"
  arguments = ArgumentsToNumber.apply(this, arguments);
  console.log(arguments, a, b, c); //[2, 1, NaN] 2 true "a"
}
function ArgumentsToNumber() {
    for (let i = 0; i < arguments.length; i++) {
    arguments[i] = Number(arguments[i]);
  }
  return arguments;
}
func(1, true, 'a');

我想要更改abc变量。

您必须传递Arguments对象本身,而不是像apply:中那样将其用作数组

function func(a, b, c) {
  console.log(a, b, c); // 1, true, "a"
  arguments[0] = 2;
  console.log(a, b, c); // 2, true, "a"
  argumentsToNumber(arguments);
  console.log(a, b, c); // 2,    1, NaN
}
function argumentsToNumber(args) {
  for (let i = 0; i < args.length; i++)
    args[i] = +args[i];
}
func(1, true, 'a');

请注意,更改另一个函数中的参数会导致性能不佳。