use*_*944 5 javascript constructor class typeerror getter-setter
所以我有一个简单的Javascript类
class MyClass {
constructor(x) {
this.x = x === undefined ? 0 : x;
}
get x() {
return this.x;
}
}
Run Code Online (Sandbox Code Playgroud)
创建MyClass时,我希望将x设置为作为参数传递的值。在此之后,我不希望能够对其进行更改,因此我故意没有设置set x()方法。
但是,我想我肯定缺少一些基本的东西,因为这给了我“无法设置属性...仅具有吸气剂”的错误。
如何在不创建setter方法的情况下为x赋值?
Ele*_*hus 11
这里有几个问题。
当你通过你创建一个 getter 时,get x()你会导致this.x调用 getter,由于你的get x()行为,它会无限期地递归this.x。
在此代码中替换您对this.xwith的引用,this._x如下所示:
class MyClass {
constructor(x) {
this._x = x === undefined ? 0 : x;
}
get x() {
return this._x;
}
}
Run Code Online (Sandbox Code Playgroud)
现在您封装的xwhich is now_x不会与通过this.x.
| 归档时间: |
|
| 查看次数: |
2742 次 |
| 最近记录: |