簡體   English   中英

如何將參數傳遞給 JavaScript 函數中的匿名函數?

[英]How do I pass arguments to an anonymous function within a function in JavaScript?

讓我們考慮以下示例

function apple(fn) {
    fn();
}

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

參數在調用傳遞給函數。 所以你本身不能。 調用時必須傳遞它們:

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"));

您的代碼調用不帶參數的匿名函數:

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));

暫無
暫無

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

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