js set get 方法踩坑 Maximum call stack size exceeded
做angular项目的时候写一个 写了一个类的set get方法
出现了内存溢出的错误 Maximum call stack size exceeded
其实就是循环调用了 死循环
错误写法
export class ChartOption {
chart_name: string;
set chart_name(name: string) {
this.chart_name = name;
}
get chart_name() {
return this.chart_name;
}
}
const chartOption = new ChartOption ();
chartOption.chart_name = 'jsong';
因为属性名和方法明重复了,函数优先(不知道ts还有没有),准备设置属性值,但是调用了方法,发生了死循环
正确写法
export class ChartOption{
_chart_name: string;
set chart_name(name: string) {
this._chart_name = name;
}
get chart_name() {
return this._chart_name;
}
}