gpt4 book ai didi

javascript - 在定义 foo 之前放置 'module.exports = foo' 是如何工作的?

转载 作者:太空宇宙 更新时间:2023-11-04 02:58:56 25 4
gpt4 key购买 nike

我不会声称我非常精通 Node,甚至 Javascript,但我见过几个这种形式的模块

module.exports = foo;

function foo() {
...
}

现在,在这种情况下我可以看到这个工作也许,但是当该模块返回一个被执行的函数时我真的很困惑。

module.exports = bar();

function bar() {
...
}

这是什么巫术?

最佳答案

函数在解析时定义,赋值在运行时分配。请参阅这篇文章http://javascriptweblog.wordpress.com/2010/07/06/function-declarations-vs-function-expressions/了解更多。

简而言之,编译器进行了 2 遍。使用以下代码:

var a = x;
function x( ) { }

在第一遍中,var a 和函数 x 被声明并在符号表(或其他形式,取决于解释器)中可用,之后编译器进行第二遍执行函数 x 到 var a 的赋值。在此阶段,在任何点(但限于语言规则),函数 x 都是已知的。

关于javascript - 在定义 foo 之前放置 'module.exports = foo' 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19697251/

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