javascript - 在调用函数之前向函数添加参数 - node.js

标签 javascript node.js

假设我有一个函数:

function foo(){
console.log(arguments);
}

process.nextTick(foo);

如何在 process.nextTick() 调用中将参数应用于 foo?

我该怎么做

//伪代码

var args = [];
process.nextTick(foo.addArgs(args));

...但不调用 foo?

最佳答案

有几种可能性。对于前几个选项,我(可能是错误的)假设您不介意将 args 作为单个数组参数传递。如果您希望 args 的每个元素成为 foo() 的单独参数,请参阅最后一个示例(使用 apply())。

假设您不在 foo() 内部使用 this,以下是一些选项:

process.nextTick(function () { 
  foo(args); 
});

或者:

var bar = foo.bind(null, args);
process.nextTick(bar);

如果您在 foo() 内部使用 this,请将上例中的 null 更改为您期望 this 具有的值。例如:

var bar = foo.bind(foo, args);
process.nextTick(bar);

您可能还希望查看call()apply() 。如果您想要一个数组(例如,[1, 2, 7])并希望分布在函数参数中(也就是说,foo(1, 2, 7) 而不是 foo([1, 2, 7])),apply() 特别有用:

process.nextTick(function () {
    foo.apply(null, args);
}

bind() 一样,如果您在 foo 内部使用 this,则将上面示例中的 null 更改为您期望 this 具有的值。

关于javascript - 在调用函数之前向函数添加参数 - node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30312879/

相关文章:

javascript - 如何编译Vuejs单文件组件?

javascript - 使用 AES 和自定义 key 使用 WebCrypto API 加密和解密视频

javascript - 滚动淡入淡出在 Firefox 上不起作用

node.js - nodejs http请求数据事件未发出

javascript - Node.JS:处理服务器每分钟最大请求的最佳方式

javascript - Promise 和 Nodebacks - Node 返回中的错误返回到 Promise.catch

node.js - 在 Docker 容器内或外部运行 Grunt/Gulp?

javascript - 将行插入表中,这些行按某些值属性排序

javascript - 从提交的图像中获取 URL

javascript - Google 可视化图表 - 颜色