簡體   English   中英

node js callback()函數沒有定義?

[英]node js callback() function is not defined?

您好我是節點js的新手,我正在嘗試編寫一個簡單的回調函數但是得到“ReferenceError:sum1未定義”,任何人都可以幫助我嗎? 碼:

sum1(1,2, function(sum){
  console.log(3 + sum);
});
sum1 = function (a,b, callback){
  callback(a + b);
};

但是,我嘗試使用function sum1(a,b,callback){...}並且它可以工作。 這是一個命名問題嗎? 任何人都可以解釋一下嗎?

您必須在調用之前定義該函數。 當您使用表格時:

sum1 = function() {...} 

要定義您的函數,必須在使用該函數之前進行該定義。 這是因為在該代碼行執行之前,函數未分配給sum1變量。 因此,如果您嘗試在該行運行之前執行sum1(...) ,則尚未定義sum1並且您將獲得異常。

如果您使用表格:

function sum1() {...}

然后,在任何代碼執行之前,在解析時定義符號sum1 ,因此文件中的放置順序不是問題。

您必須在調用sum1之前定義sum1 ,或使用函數聲明:

// Define first:
var sum1 = function (a,b, callback){
    callback(a + b);
};
sum1(1, 2, function(sum) {
    console.log(3 + sum);
});

要么

// Function Declaration:
sum1(1, 2, function(sum) {
    console.log(3 + sum);
});
function sum1(a,b, callback){
    callback(a + b);
};

函數聲明可以在調用它的代碼之后。 但是,為清楚起見,在代碼中使用它之前,應始終定義一個函數(任一方式)。

sum1 = function (a,b, callback){
  callback(a + b);
};

這是一個函數表達式,因此在定義之前不能調用sum1() ,將其移到函數調用之上。

暫無
暫無

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

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