JSHint重新定义警告并向对象添加更多属性

Mic*_*zka 5 javascript jshint

我有跨多个文件的对象定义,我使用以下语法向命名空间添加更多属性

var app = app || {};

// and then
app.namespace = {
  ...
}
Run Code Online (Sandbox Code Playgroud)

但JSHint警告我:

[L1:C5] W079: Redefinition of 'app'.
var app = app || {};
Run Code Online (Sandbox Code Playgroud)

我不确定这是不是真的错了,因为我已经看过它多次使用,例如与模块模式一起使用.

如果没关系,我怎么能在全球范围内压制这个警告?我找到了一种方法来抑制给定文件的给定选项

/* jshint: -W079 */ 
Run Code Online (Sandbox Code Playgroud)

但有没有办法在全球范围内做到这一点?或者它被认为是不好的做法?

Rus*_*zov 11

用这个:

window.app = window.app || {};
Run Code Online (Sandbox Code Playgroud)

您正在尝试将局部变量应用程序分配给全局变量应用程序.