所以我有一个简单的 Javascript 类
class MyClass {
constructor(x) {
this.x = x === undefined ? 0 : x;
}
get x() {
return this.x;
}
}
创建 MyClass 时,我希望将其 x 设置为作为参数传入的值。在这之后,我不希望它能够被改变,所以我故意不做一个 set x() 方法。
但是,我想我一定错过了一些基本的东西,因为这给了我“无法设置属性......只有 setter/getter ”错误。
如何在不创建 setter 方法的情况下为 x 赋值?
最佳答案
这里有几个问题。
当您通过 get x()
制作 setter/getter 时你正在造成this.x
导致调用 getter,由于您的 get x()
,它将无限期地递归做this.x
.
替换您对 this.x
的引用与 this._x
在这样的代码中:
class MyClass {
constructor(x) {
this._x = x === undefined ? 0 : x;
}
get x() {
return this._x;
}
}
现在你封装的
x
现在是 _x
通过 this.x
调用 getter 不会感到困惑.
关于javascript - 无法设置属性...只有 Getter (javascript es6),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54562790/