我在https://javascript.info/class看到了下面的代码
它的构造函数正在获取name参数并将其分配给this.name. 然后在名为 getter 的 getter 中name返回this._name。为什么即使构造函数不用于设置值,此代码也能工作?this._name
class User {
constructor(name) {
// invokes the setter
this.name = name;
}
get name() {
return this._name;
}
set name(value) {
if (value.length < 4) {
alert("Name is too short.");
return;
}
this._name = value;
}
}
let user = new User("John");
alert(user.name); // John
user = new User(""); // Name is too short.
Run Code Online (Sandbox Code Playgroud)
下划线是一个普通字符,在 JavaScript 中没有特殊含义。您可以将其替换p为 private 或其他内容。
该属性this.name有一个 getter 和一个 setter。
this.name = name;在构造函数中调用setter。甚至还有评论// invokes the setter。
二传手set name(value)设定this._name = value;。
| 归档时间: |
|
| 查看次数: |
77 次 |
| 最近记录: |