今天看一个同学的问题 https://edu.csdn.net/teach_question/detail/183 如下:
class Shape{
constructor(width,height){
this.width = width;
this.height = height;
}
get width(){
return this.width;
}
get height(){
return this.height;
}
}
new Shape();
// 运行老出现错误,帮忙看看
这个问题主要是 get width() / get height() ,这两个都是 getter 属性,简单来说就是只读属性,不能被赋值。
所以,构造函数中的 this.width = width; 和 this.height = height; 会产生错误。
这是第一个错误,再有:
var s = new Shape();
s.width // 这样调用也会出问题。
因为 width 内部 return this.width ,形成了无限循环递归访问!