2014-10-10 60 views
0

我最近切換到WebStorm,並且被JavaScript原型修改中的一個奇怪問題困住了。如果我定義如下:Webstorm原型函數中未解決的方法/變量

something.really.neat = function(blah) { 
    this.dog = "cat" 
} 

something.really.neat.prototype.getCow = function(blah2) { 
    this.dog = "cow" 
} 

每一個通話中的原型功能結果this.dog在「未解決變量」的錯誤。 WebStorm應該能夠輕鬆地遵循從原型到主要功能的範圍,但似乎無法實現。

此函數的最終結果是角工廠:

angular.factory('neat', function() { 
    return new something.really.neat(); 
}); 
+0

只有在將構造函數放入'something.really.'命名空間時纔會發生這種情況嗎?當你使用'Neat'時,它會起作用嗎?代碼是否真正起作用(並且只有「類型」推斷纔會喊出警告)? – Bergi 2014-10-10 03:19:05

+0

它是否真的警告「未解決*變量*」? '.dog'是*屬性*,'this'是該方法的* context *而不是* scope *。 – Bergi 2014-10-10 03:21:51

+0

它說沒有解決變量的狗,可能是因爲這種情況下沒有財產狗。也就是說,我設法追查了這個問題。 – 2014-10-10 03:28:23

回答

0

在5分鐘後我發現其有問題JSDoc(或至少我的語法)。我在每個屬性上都使用@memberOf,顯然我用於@memberOf的語法是錯誤的,導致WebStorm無法找到範圍。

相關問題