gpt4 book ai didi

javascript - 什么时候在 Nodejs 中使用匿名函数?

转载 作者:行者123 更新时间:2023-11-30 14:12:51 25 4
gpt4 key购买 nike

最近我正在调试我的一位同事编写的一些代码,并在一个更大的函数内的条件中发现了一些与此类似的东西。

(function(foo){
...
console.log(foo);
...
})();

所以看起来很简单

function display(db, user, foo) {
if (isValid(db, user) {
(function(foo){
console.log(foo);
})();
}
...
}

最初它没有 (); 最后,所以据我所知,它甚至没有被调用,但对于我更广泛的问题,它和下面的东西有什么区别?我已经看过几次这种语法,但我不明白上面的语法对这个目的有何用处。我的理解是这只会增加不必要的复杂性。请哪位大神赐教!

function display(db, user, foo) {
if (isValid(db, user) {
// without abstract function
console.log(foo);
}
...
}

谢谢:-)

最佳答案

对于这样一个简单的示例,当可以直接调用内部函数时,没有理由在 node.js 或任何其他 JavaScript 环境中使用这样的匿名函数。

在进行审查时,我通常会假设任何 console.log(或选择您的语言日志记录)都是偶然的。如果周围的源本身没有做任何有值(value)的事情,它可能只是为了在开发和调试期间支持(可能过时的)console.log

由于 JavaScript 是单线程的,因此构造此类匿名函数严格用于范围界定。对于没有执行的原始源代码(即缺少 ()),这实际上是一种从运行时“隐藏”调试代码的方法,同时将其保留在 -如果逐步调试需要它,请放置它。

调试时,只需添加 ('isValid succeeded') 即可使其执行内部的所有源代码。

(function(foo){
console.log(foo);
})( /* You're missing a parameter value here; will print 'undefined'. */ );

关于javascript - 什么时候在 Nodejs 中使用匿名函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54095936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com