- 可以只编写【get】方法,但是方法名和属性名不能同名,否则在设置这个属性的值时会报“没有【set】方法”的错误。
- 可以只编写【set】方法,但是方法名和属性名不能同名,否则会报“栈溢出”的错误。
同时编写【get】和【set】方法时,两个方法名必须要同时满足同名且不和属性名同名的条件。
下面是一个示例代码,可以用于上面三点的测试:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
class Point {
constructor(x = 1) {
this.x = x;
}
get xx() {
return this.x;
}
set xx(val) {
this.x = val;
}
}
const point = new Point();
point.xx = 99;
console.log(point.x); //99
</script>
</body>
</html>