如何在JavaScript中将参数传递给匿名函数?

时间:2019-12-15 07:42:15

标签: javascript function parameter-passing anonymous-function

让我们考虑以下示例

function apple(fn) {
    fn();
}

apple(function(a) { // Here how do I pass an integer value for a ?
    console.log(a);
});

2 个答案:

答案 0 :(得分:0)

参数被调用时被传递给函数 。所以你本身不能。调用时必须通过它们:

function apple(fn) {
    fn("Here you can pass an argument");
}

apple(function(a) {
    console.log(a);
});

如果要在定义函数时定义值,则只需将其放在函数中即可:

function apple(fn) {
    fn();
}

apple(function() {
    console.log("Here you can hard code a value instead of using an argument");
});

一个更复杂的解决方案是创建一个函数,该函数使用参数调用匿名函数,然后传递新函数……但这对您提供的示例来说毫无意义。

function apple(fn) {
    fn();
}

apple(function(a) {
    console.log(a);
}.bind(null, "Here you can pass an argument"));

答案 1 :(得分:0)

您的代码调用不带参数的匿名函数:

function apple(fn) {
    fn(); //Here
}

您可以从apple向其传递内容:

function apple(fn) {
    fn(0);
}

apple(function(a) {
    console.log(a); //0
});

或者,您可以让apple传递匿名函数的参数:

function apple(fn,...args) {
    fn(...args);
}

apple(function(a) {
    console.log(a); //0
}, 0);

或者,您可以绑定匿名函数,并在其前面加上参数:

function apple(fn) {
    fn();
}

apple((function(a) {
    console.log(a); //0
}).bind(undefined, 0));