[英]using function expression with callback function instated of arrow function
當我使用箭頭函數作為回調函數時,我在下面的這段代碼工作得很好
var getNumber = function (argument, callback) {
callback(argument - 1);
}
getNumber(10, (x)=>{
console.log(x); // x = 9
});
現在,當我想將箭頭函數更改為下面代碼中的函數表達式時。
var getNumber = function (argument, callback) {
callback(argument - 1);
}
getNumber(10, action(x)); // x is not defined
function action(x){
console.log(x);
}
可悲的是我收到錯誤消息說x沒有定義。
在第二個片段中,您沒有傳遞函數,而是在調用函數,然后將結果作為參數傳遞。 你要
getNumber(10, action); // x is not defined
function action(x){
console.log(x);
}
嘗試運行以下代碼
var getNumber = function (argument, callback) { callback(argument - 1); } getNumber(10, action); // x is not defined function action(x){ console.log(x); }
您正在調用action(x),但它期望有一個函數,而在您調用action(x)的地方沒有x的值,因此它引發了錯誤
var getNumber = function (argument, callback) {
callback(argument - 1);
}
function action(x){
console.log(x);
}
getNumber(10, action); // pass callback function, not result of the call
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.