簡體   English   中英

在調用該函數之前向該函數添加參數-node.js

[英]adding arguments to a function before calling that function - 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選項,則可以使用this選項:

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

要么:

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

如果你使用this內部foo()改變null在上面的例子中,以您所期望的值this有。 例如:

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

您可能還希望查看call()apply() 如果您想擁有要分布在函數args(即foo(1, 2, 7) foo([1, 2, 7]) foo(1, 2, 7)而不是foo([1, 2, 7])的數組(例如[1, 2, 7] ),則apply()特別有用foo([1, 2, 7]) ):

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

bind() ,如果你使用this內部foo ,然后換null在上面的例子中是您所期望的值this有。

您可以使用匿名函數來做到這一點:

var args = [];
process.nextTick(function(){
   foo.apply(foo, args);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM