【问题标题】:Unresolved method/variable in Webstorm prototype functionsWebstorm原型函数中未解决的方法/变量
【发布时间】:2014-10-10 03:14:51
【问题描述】:

我最近切换到 WebStorm,但在修改 javascript 原型时遇到了一个奇怪的问题。如果我定义以下内容:

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();
});

【问题讨论】:

  • 只有将构造函数放在something.really. 命名空间中才会发生这种情况吗?大写Neat 是否有效?代码是否真的有效(并且只有“类型”推断是大喊警告)?
  • 它真的会警告“未解决的变量”吗? .dog 是一个属性this上下文而不是方法的范围
  • 它表示未解析的变量 dog,可能是因为 this 上下文没有属性 dog。也就是说,我设法找到了问题所在。
  • 这应该有助于理解错误:Scope in JavaScript。迈克·韦斯特 (Mike West) 是一位好作家。

标签: javascript webstorm jetbrains-ide


【解决方案1】:

5 分钟后,我发现 JSDoc(或者至少是我的语法)存在问题。我在每个属性上都使用了@memberOf,显然我用于@memberOf 的语法是错误的,导致WebStorm 无法定位范围。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    • 2018-11-26
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    相关资源
    最近更新 更多