在某些app.js中,使用以下代码
var _ = require('underscore');
_.times(2, function() {
console.log('Hello');
});
Webstorm 7抱怨未解决的功能'时间'。
经过一些谷歌搜索后,我发现如果我做var _ = new require('underscore');
,那么网络风暴根本不会抱怨。
但是,我对NodeJS非常新,所以无法正确理解。
请告诉我new require('')
和require('')
之间有什么区别,以及它是如何解决这个问题的。此外,使用new require
?
答案 0 :(得分:1)
要明确说明:_
是一项功能,因此您可以将其与new
关键字一起使用。但是这应该被用作包装器,它为你传递的对象添加方法,以使你的api对象定向。
因此,如果您使用_
作为函数或构造函数,则需要将对象作为参数传递,并且您将获得包含数据的对象以及作为方法附加的一些下划线函数(即,您不要不需要将您的数据作为第一个参数传递,它在对象中包含在内。)
基本上,编写var _ = new require('underscore')
是不正确的。你将获得无用的对象,这绝对不是真正的_
。那么Webstorm呢 - 除非你关掉这些功能,否则它会抱怨很多。 Javascript过于动态,无法在所有情况下都能正常运行。
摘要:使用var _ = require('underscore');
,忽略Webstrom。