以异步Node函数fs.stat()
为例。如果我需要fs.stat()
在文件上使用,然后再做一次,结果会被遮蔽。
fs.stat(file, function(err, stats) {
fs.stat(file, function(err, stats) {
});
});
err
变量以及stats
变量都被隐藏了 - 如果我不会在第二个回调中使用第一个回调,这是否重要?重命名第二个回调变量是否更好?
一次或多次覆盖这些变量是否会对性能产生任何影响?
以异步Node函数fs.stat()
为例。如果我需要fs.stat()
在文件上使用,然后再做一次,结果会被遮蔽。
fs.stat(file, function(err, stats) {
fs.stat(file, function(err, stats) {
});
});
err
变量以及stats
变量都被隐藏了 - 如果我不会在第二个回调中使用第一个回调,这是否重要?重命名第二个回调变量是否更好?
一次或多次覆盖这些变量是否会对性能产生任何影响?
意见问题,但我会说是的 - 不好的做法。无论如何,这里有两个问题
下一个需要处理此代码的人(可能是您)可能会感到困惑。
在将来的某个时间,您可能需要访问外部值以提供一些新功能(例如,要确保两个文件对象具有相同的类型?)。进行这种更改将需要对整个代码块进行烦人且容易出错的编辑。
现在使用不同的名称以防止以后出现问题。
是的,这是不好的做法。取决于开发人员查看它有多糟糕。如果我得到这样的东西,我首先想到的是
为什么他将err
and传递stats
给这个回调?
fs.stat(file, function(err, stats) {
\\ \\
\\ \\
fs.stat(file, function(err, stats) {
});
});
在像您现在正在做的相同功能的多个实例中工作时。您必须确保可以独立访问所有变量。
除非您确定不再使用某个变量或构造,否则您可以重新使用它。但是您必须在有用的评论中提及这一点,以确保其他开发人员理解它。
更新:
回调函数上的那些变量有范围限制,因此它们不会影响函数声明之外。
一个有效案例的例子是:
fs.stat(file, function(err, stats) {
});
//Another similar functions somewhere with same varialbes
fs.stat(file2, function(err, stats) {
});