[英]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.