如何在JavaScript(或节点),函数的参数被识别?

我正在学习Node.js(即使我不是Javascript的专家,但我理解并编写代码)。 现在,试图玩Node.js,我只是被困在这个代码:

var fs = require('fs'); fs.readFile('/etc/passwd', function (err, data) { if (err) throw err; console.log(data); }); 

下面是我的一些疑惑:匿名函数有两个参数: errdata ,在函数err内部是读取抛出的文件时的错误,data是文件的实际内容。

  1. 那么,函数如何知道和区分哪个是错误的,哪个是文件的内容?
  2. 它是这样做的:第一个参数总是一个错误,第二个参数总是内容数据?
  3. 如果我这样写,函数里面会有什么错误数据

     function(data, err) {} ? 

这只是一个简单的函数只传递两个参数。 它是如何工作的一些更多的论点?

如何在function,数据是数据和错误是错误?

对于上面的例子, 错误数据是预定义的关键字(我怀疑是否)?

参数将按照它们在调用函数时传递的顺序获取值。 您可以通过阅读计划使用的函数的API文档来查看正确的顺序。

所以,如果您将函数更改为function(data, err) {} ,那么data将包含错误,而err将保存数据:)

为了方便您将来的工作,几乎每个接受callback的Node.js函数,第1个参数都是错误,第2个参数是函数的返回值。

1)。 那么,函数如何知道和区分哪个是错误的,哪个是文件的内容?

当从Node调用函数时,参数的顺序是已知的。

2)。 它是这样做的:第一个参数总是一个错误,第二个参数总是内容数据?

是。

3)。 如果我这样写,函数里面会有什么错误和数据

 function(data, err) {} ? 

他们将有相同的价值观,他们根本不会被使用。

对于上面的例子,错误和数据是预定义的关键字?

不。 你甚至可以重命名他们,他们仍然会被绑定到相同的值。

这是如何在API中定义的

在这里检查

如@gustavohenke指出的,如果你定义它

 function(data, err){ ... } 

那么data将保存error logerr将保存file data

编辑
希望你在文档中阅读它应该清除你的怀疑:

callback传递两个参数(err,data),其中data是文件的内容。