为什么这似乎有用(变量在构造函数的另一端收到):
var lib = require('lib');
lib('abc');
与此同时,这似乎产生了不同的结果:
var lib = require('lib')('abc');
我认为他们会做同样的事情,但我显然有些不对劲。
答案 0 :(得分:0)
哦,男人 - 我用这个问题创下新低。感谢@Dave Network给我的提示。
我的constructor
lib
在完成后没有返回(module.exports
)。修好后,结果也一样。
答案 1 :(得分:0)
这些意味着完全不同的事情,尽管有问题的模块可能以这样的方式编写,以至于它们碰巧做同样的事情。
var lib = require('lib');
lib('abc');
这表示“调用函数require
,并将其返回值赋给变量lib
”。据推测,它正在返回一个函数,因为我们会立即调用该函数。
var lib = require('lib')('abc');
这表示“调用函数require
,它返回一个函数,然后调用该函数,并将第二个函数的返回值赋给变量lib
。”第二个函数可能返回任何东西,一个数字,一个字符串等。但不一定是函数(尽管它也可以返回它)。
所以在第一个选择之后,我们知道lib
是一个函数。在第二个选择之后,我们没有。