jshint不处理DewineProperty语法



我在构造函数函数中具有此代码:

    Object.defineProperty(this, "color", {
        get : function() {
            return color;
        },
        set : function(newVal) {
            color = newVal;
            this.path.attr("stroke", color);
        } 
    });

jshint警告说"颜色"未定义。在用DefineProperty配置之前,我应该以某种方式定义"颜色"?

(我尝试在DefineProperty内使用'this.color',但这导致无限循环)

谢谢

color确实是未定义的。您需要将信息存储在其他地方。

您可以通过关闭来完成:

var color;
Object.defineProperty(this, "color", {
    get : function() {
        return color;
    },
    set : function(newVal) {
        color = newVal;
        this.path.attr("stroke", color);
    } 
});

或另一个不可启示(以免在for in上显示)和不可配置(避免覆盖)属性:

Object.defineProperty(this, "_color", {
  configurable: false,
  writable: true,
  enumerable: false
});
Object.defineProperty(this, "color", {
    get : function() {
        return this._color;
    },
    set : function(newVal) {
        this._color = newVal;
        this.path.attr("stroke", color);
    } 
});

相关内容

  • 没有找到相关文章

最新更新