Javascript - 将参数添加到作为参数传递的函数中

Ada*_*ths 5 javascript function parameter-passing

这是我正在寻找的行为:

function one(func){
   func(5);
}

function two(arg1, arg2){
   console.log(arg1);
   console.log(arg2);
}

one(two(3)) //prints 3, 5
Run Code Online (Sandbox Code Playgroud)

这种行为或类似的东西可以在javascript中完成吗?

Mat*_*ert 6

您始终可以使用bind()函数将一些参数传递给您的函数.它将创建一个新函数,第一个参数 - arg1 - 等于此示例中的值3:

function one(func){
   func(5);
}

function two(arg1, arg2){
   console.log(arg1);
   console.log(arg2);
}

one(two.bind(null, 3))
Run Code Online (Sandbox Code Playgroud)

你可以在这里阅读更多关于bind()函数的信息:MDN - Bind


Nik*_*wal 5

一些解决方法是可能的

function one() {

  var args = Array.prototype.slice.call(arguments);
  var func = args[0];
  args.splice(0, 1);
  args.push(5);
  func.apply(this, args);
}

function two(arg1, arg2) {
  console.log(arg1);
  console.log(arg2);
}

one(two, 3)
Run Code Online (Sandbox Code Playgroud)