首页 > 解决方案 > 我无法获得此类的价值

问题描述

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'

任何人都可以帮助我。

我试图得到“Max”和“Min”的百分比,但我什么也得不到

标签: javascript

解决方案


静止的

关键字定义类的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);


推荐阅读