我使用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