美文网首页
[ERROR] : RangeError: Maximum ca

[ERROR] : RangeError: Maximum ca

作者: 咖A喱 | 来源:发表于2019-08-18 18:59 被阅读0次
    • 出现这种错误一般是因为不断产生大量数据占满堆栈内存
    • 我今天的案例在于Class中使用gettersetter方法时,出现如上报错
      后来了解到原因:
    class Example{
        constructor(a, b) {
            this.a = a; // 实例化时调用 set 方法
            this.b = b;
        }
        get a(){
            console.log('getter');
            return this.a;
        }
        set a(a){
            console.log('setter');
            this.a = a; // 自身递归调用
        }
    }
    let exam = new Example(1,2); // 不断输出 setter ,最终导致 RangeError
    class Example1{
        constructor(a, b) {
            this.a = a;
            this.b = b;
        }
        get a(){
            console.log('getter');
            return this._a;
        }
        set a(a){
            console.log('setter');
            this._a = a;
        }
    }
    let exam1 = new Example1(1,2); // 只输出 setter , 不会调用 getter 方法
    console.log(exam._a); // 1, 可以直接访问
    

    之后封锁属性使之不可修改的方法是Object.freeze()

    相关文章

      网友评论

          本文标题:[ERROR] : RangeError: Maximum ca

          本文链接:https://www.haomeiwen.com/subject/ltkdsctx.html