可疑代码。 'getprop' 运算符的结果未被使用警告 GOOGLE CLOSURE

Suspicious code. The result of the 'getprop' operator is not being used warning GOOGLE CLOSURE

我正在使用 google 闭包并且定义了几个变量。我只在构造函数中定义它们的值。编译代码时出现错误

javascript/model/errorLogger.js:42: WARNING - Suspicious code. The result of the 'getprop' operator is not being used.
==> default: [WARNING] model.ErrorLogger.prototype.errors;

这是代码。

goog.provide('model.ErrorLogger');

/**
 * @constructor
 */
model.ErrorLogger = function() {
    this.errors  =[];
    this.errorsHash = {};
}

model.ErrorLogger.prototype.errors;
model.ErrorLogger.prototype.errorsHash;

为什么会出现此警告?我应该提到 typedef 注释吗?

这些行:

model.ErrorLogger.prototype.errors;
model.ErrorLogger.prototype.errorsHash;

没有效果 - 您只是在引用属性而没有对其进行任何操作。这就是它警告您的内容 - 它认为您打算将它们分配给某个东西,或将它们传递给一个函数,或任何具有某种效果的东西。

(此外,这些属性甚至不会以那种形式存在 - 真的不清楚您要在这里做什么。)

您打算从另一个对 OOP 不友好的 "class" 访问 "errors" 和 "errorsHash" :) 您必须为您的两个成员定义访问器,或者告诉编译器您的成员是 public(即使这是默认行为)

/*
* public member  
* @public
*/ 

为您的属性添加此或声明 public getter/setter 将解决您的问题