我无法获得这堂课的价值

时间:2018-10-20 14:22:18

标签: javascript

class Progress {
    constructor(Max, Min) {
        this.Max = Max;
        this.Min = Min;
        this.current;
    }

    static get get() {
        //((input - min) * 100) / (max - min)
        return this.current;
    }

    static set Progress(number) {
        this.current = number;
    }
}

var prog = new Progress(0, 200);
prog.Progress = 22;
console.log(prog.get);
// console return 'undefined'

任何人都可以帮助我。

我尝试获取“最大”和“最小”的百分比,但我什么也没得到

2 个答案:

答案 0 :(得分:2)

  

Static

     

static关键字为类定义了静态方法。在类的实例上不调用静态方法。而是在类本身上调用它们。这些通常是实用程序功能,例如用于创建或克隆对象的功能。

由于修饰符static,您遇到了问题,基本上,您没有调用方法/属性get,因为您尝试访问的属性不存在。

例如,要访问静态方法get,您必须执行以下操作:

Progress.get

完全删除修饰符static即可。

class Progress {
  constructor(Max, Min) {
    this.Max = Max;
    this.Min = Min;
  }

  get get() {
    return this.current;
  }

  set Progress(number) {
    this.current = number;
  }
}

var prog = new Progress(0, 200);
prog.Progress = 22;
console.log(prog.get);

答案 1 :(得分:1)

从get和set中删除静态变量,因为静态方法无法访问局部变量

class Progress {
  constructor(Max, Min) {
    this.Max = Max;
    this.Min = Min;
    this.current;
  }

  get get() {
    //((input - min) * 100) / (max - min)
    return this.current;
  }

  set Progress(number) {
    this.current = number;
  }
}

var prog = new Progress(0, 200);
prog.Progress = 22;
console.log(prog.get);