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