使用自定义参数分配函数而不调用函数

时间:2014-10-08 20:20:54

标签: javascript

我有一个函数A,它在运行时接受另一个函数B作为参数并调用它。问题是函数B需要一些参数,但我不知道如何将函数B(带参数)传递给函数A.

示例:

function callerFunction(c)
{
alert("The caller is calling the function!");
c(c.arguments);
};
var a = "hello";

function thisOne(d)
{
    d = "I changed my way";
    alert(d);
};
callerFunction( /* I NEED TO PASS THE 'thisOne' with the parameter/variable 'a' here, and then call it inside 'callerFunction' */);

1 个答案:

答案 0 :(得分:3)

只需传递一个闭包:

callerFunction(function() { thisOne(a); });

并将其称为c(),而不是c(c.arguments)

请注意,此匿名函数将引用a变量,而不是当前值a。因此,如果callerFunction()存储此函数对象并稍后调用它,如果您在传递匿名函数和调用它之间更改a中的值,则a的值为var a = 1; var fn = function() { console.log(a); }; fn(); // Logs 1 a = 2; fn(); // Logs 2 匿名函数的视角会发生变化:

{{1}}