我使用ReSharper的6和ASP.NET Web方法,并在我的JavaScript文件的刺激性警告:ReSharper的,使用Javascript:“隐式使用声明的全局变量‘X’”
"Use of implicitly declared global variable 'X'"
的原因是web方法在JavaScript中创建如下:
new X.example().webMethod(arg1, arg2, successCallback, failureCallback);
而X ...是隐式定义的。我想知道是否有解决方案来明确定义这个?它在一些自动生成的JS文件中定义,由ASP.NET Web方法框架创建。
我的问题是:如何摆脱这种情况的错误,而不是为了合理的错误情况而摆脱它?
谢谢!
好问题。这似乎是一个奇怪的警告,因为这条线本身并没有声明任何东西。如果X未定义,则会在运行时发生错误;如果在其他地方声明X,则应在其他地方发出警告。 – nnnnnn
这是R#JS引擎说的“嗨,我不认识X-- X应该真的在这里吗?”如果您输入“XY”,但确实意味着“X”和R#保存了您的培根,则这很有意义。问题是,我没有看到一种告诉R#的方法:“是的,这真的应该在这里!” – rythos42
如果您将'X'更改为'window.X',它仍然抱怨吗?另一个想法是:在C#中,你可以在'resharper禁用任何'和'// resharper启用任何'(我不记得确切)包装问题行,所以我希望他们会为js做类似的事情。或者你可以在全局范围中显式定义变量:var X = window.X || {};'。 – sethobrien