Node.js - 构造函数与 require 在同一行
Node.js - constructor on same line as require
为什么这似乎有效(在构造函数的另一端接收变量):
var lib = require('lib');
lib('abc');
同时,这似乎会产生不同的结果:
var lib = require('lib')('abc');
我以为他们会做同样的事情,但我显然有问题。
哦,伙计 - 我对这个问题的回答再创新低了。感谢@Dave Network 向我举报。
我的 constructor
for lib
在完成后没有自行返回 (module.exports
)。解决这个问题后,结果还是一样。
它们的意思完全不同,尽管所讨论的模块的编写方式可能恰好是它们做同样的事情。
var lib = require('lib');
lib('abc');
这表示 "call the function require
, and assign its return value to the variable lib
"。据推测,它是 returning 一个函数,因为我们随后会立即调用该函数。
var lib = require('lib')('abc');
这表示 "call the function require
, which returns a function, then call that function, and assign that second function's return value to the variable lib
." 第二个函数可能 return 任何东西,数字,字符串等。但不一定是函数(尽管它也可能 return 那个)。
所以经过第一个选择,我们知道lib
是一个函数。第二次选择后,我们没有。
为什么这似乎有效(在构造函数的另一端接收变量):
var lib = require('lib');
lib('abc');
同时,这似乎会产生不同的结果:
var lib = require('lib')('abc');
我以为他们会做同样的事情,但我显然有问题。
哦,伙计 - 我对这个问题的回答再创新低了。感谢@Dave Network 向我举报。
我的 constructor
for lib
在完成后没有自行返回 (module.exports
)。解决这个问题后,结果还是一样。
它们的意思完全不同,尽管所讨论的模块的编写方式可能恰好是它们做同样的事情。
var lib = require('lib');
lib('abc');
这表示 "call the function require
, and assign its return value to the variable lib
"。据推测,它是 returning 一个函数,因为我们随后会立即调用该函数。
var lib = require('lib')('abc');
这表示 "call the function require
, which returns a function, then call that function, and assign that second function's return value to the variable lib
." 第二个函数可能 return 任何东西,数字,字符串等。但不一定是函数(尽管它也可能 return 那个)。
所以经过第一个选择,我们知道lib
是一个函数。第二次选择后,我们没有。