新要求('下划线')与要求('下划线')NodeJS [Webstorm 7自动完成]

时间:2013-11-14 13:23:51

标签: javascript performance node.js

在某些app.js中,使用以下代码

var _ = require('underscore');

_.times(2, function() {
  console.log('Hello');
});

Webstorm 7抱怨未解决的功能'时间'。 经过一些谷歌搜索后,我发现如果我做var _ = new require('underscore');,那么网络风暴根本不会抱怨。 但是,我对NodeJS非常新,所以无法正确理解。

请告诉我new require('')require('')之间有什么区别,以及它是如何解决这个问题的。此外,使用new require

会对性能产生影响吗?

1 个答案:

答案 0 :(得分:1)

要明确说明:_是一项功能,因此您可以将其与new关键字一起使用。但是这应该被用作包装器,它为你传递的对象添加方法,以使你的api对象定向。

因此,如果您使用_作为函数或构造函数,则需要将对象作为参数传递,并且您将获得包含数据的对象以及作为方法附加的一些下划线函数(即,您不要不需要将您的数据作为第一个参数传递,它在对象中包含在内。)

基本上,编写var _ = new require('underscore')是不正确的。你将获得无用的对象,这绝对不是真正的_。那么Webstorm呢 - 除非你关掉这些功能,否则它会抱怨很多。 Javascript过于动态,无法在所有情况下都能正常运行。

摘要:使用var _ = require('underscore');,忽略Webstrom。