0

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

var _ = require('underscore');

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

Webstorm 7 抱怨未解决的功能“次”。经过一番谷歌搜索后,我发现如果我做一个var _ = new require('underscore');then webstorm 根本不会抱怨。但是,我对 NodeJS 非常陌生,所以无法正确掌握这一点。

请告诉我两者之间有什么区别,new require('')以及require('')它是如何解决问题的。此外,使用 对性能有影响new require吗?

4

1 回答 1

1

为了清楚起见:_是一个函数,因此您可以将其与new关键字一起使用。但这应该用作包装器,它将方法添加到您传递的对象中,以使您的 api 面向对象。

因此,如果您_用作函数或构造函数,则需要将对象作为参数传递,并且您将获得带有数据的对象以及作为方法附加的一些下划线函数(也就是说,您不需要将数据传递为第一个参数,它被封装在对象中)。

基本上,写作var _ = new require('underscore')是不正确的。你会得到无用的对象,这绝对不是真实的_。那么 Webstorm 呢?它会抱怨很多,除非你关闭这些功能。Javascript 过于动态,无法让它们在所有情况下都能正常工作。

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

于 2013-11-14T13:54:43.373 回答