`无法实例化非构造函数`闭包编译器警告?

问题描述 投票:0回答:2

亲爱的朋友们,我应该如何处理 Closure Compiler 输出的这些错误警告? 非常感谢您对这种特定类型的错误的想法和代码改进:

  1. JSC_WRONG_ARGUMENT_COUNT:函数 parseInt:使用 1 个参数调用。函数需要至少 2 个且不超过 2 个参数。第 593 行第 12 个字符

    if (parseInt(jQuery.browser.version) < 7) {

  2. JSC_NOT_A_CONSTRUCTOR:无法在第 708 行第 15 行字符处实例化非构造函数

    lightbox = new Lightbox(this, opts.lightbox);

  3. JSC_NOT_A_CONSTRUCTOR:无法在第 1265 行第 19 行字符处实例化非构造函数

    var scroller = new Scroller($(this), opts);

javascript jquery debugging google-closure-compiler
2个回答
20
投票

数字1:
此警告意味着您在函数调用中传入了错误数量的参数。

这里有更好的解释

数字 2 和 3:
编译器希望所有构造函数都标有 JSDoc 标签 @constructor,如下所示:

/**
 * @constructor
 */
function MyClass() {
  this.foo = 'bar';
}
var obj = new MyClass();
alert(obj.foo);

这里有更好的解释。


3
投票

对于第一个,它希望您将两个参数传递给parseInt:值和基数。对于基于 10 的号码(这是你的情况),你需要(不是真的需要,但它希望你)打电话

parseInt(jQuery.browser.version, 10)
© www.soinside.com 2019 - 2024. All rights reserved.