Javascript 无法使用类声明设置值

Javascript 无法使用类声明设置值,javascript,typescript,Javascript,Typescript,我正在尝试设置值。但这是一个错误。 请帮助我理解 class Y { num: number; get x() { return num; } set m(i):number { this.num = 20; } } const N = new Y().m(10); console.log(N.x); 您正在使用this.num关键字设置num,并且仅使用num获取 将this关键字添加到get方法 get x(

我正在尝试设置值。但这是一个错误。 请帮助我理解

class Y {

    num: number;

    get x() {
        return num;
    }

    set m(i):number {
        this.num = 20;
    }
}
const N = new Y().m(10);
console.log(N.x);

您正在使用
this.num
关键字设置
num
,并且仅使用
num
获取

this
关键字添加到
get
方法

  get x() {
        return this.num;
    }
  • num
    被添加到类的实例中。您需要从getter返回
    this.num
  • 在setter中,您总是将其设置为
    20
    。您需要将其设置为
    i
    。将使用
    =
  • 您需要在单独的一行中创建
    Y
    的实例
  • 您不能像调用函数一样调用setter。将其视为普通属性:
Y类{
号码;
得到x(){
返回这个.num;
}
集合m(i){
this.num=i;
}
}
常数N=新的Y()
N.m=10;

控制台日志(N.x)您将setter作为一个函数调用,但它永远不起作用。改为这样做:

Y类{
号码;
得到x(){
返回这个.num;
}
集合m(i){
this.num=i;
}
}
常数N=新的Y();
N.m=23

console.log(N.x);//在setter中使用
this.num
打印23,但在getter中只使用
num
。另外,你认为
newy().m(10)
是什么?毕竟,您将其分配给
N
。另外,setter的行为类似于属性,不可调用。因此,我们不应该执行
N.m(10)
-来设置值?请纠正我。@3gwebtrain no.Just
N.m=10