[js] 举例说明Object.defineProperty会在什么情况下造成循环引用导致栈溢出?

[js] 举例说明Object.defineProperty会在什么情况下造成循环引用导致栈溢出?

var data = {
    count: 1,
    value: 2
}
Object.defineProperty(data, 'count', {
    enumerable: true,
    configurable: true,
    get: function () {
        console.log('你访问了count', this.count); // 循环读取data.count 导致报错
        return this.value
    },
    set: function (newVal) {
        console.log('你设置了count');
    }
})
console.log(data.count) // 报错 Maximum call stack size exceeded

个人简介

我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论

主目录

与歌谣一起通关前端面试题

上一篇:ES6 系列之 defineProperty 与 proxy


下一篇:深入理解 Object.defineProperty