繁体   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