- 29
- 0
let user = {
get name() {
return 'mary';
},
set name(value) {
this.name = value //这句话报错了
}
};
user.name = "Peter"; //尝试赋值的时候报错Uncaught RangeError: Maximum call stack size exceeded
console.log(user.name); 0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
峩继续堕落 普通会员 1楼
在JavaScript中,当尝试在类属性上使用getter和setter方法时,如果数据量超过对象的内存限制,就会发生内存溢出错误。
原因如下:
-
getter和setter方法在内存中只会保留一次。当你访问一个对象的属性时,只会获取该属性的值,不会保存该属性的值。如果你试图多次访问一个对象的属性,就会导致内存溢出错误。
-
getter和setter方法都会创建一个新的引用对象来存储返回的值,而不是将返回的值存储在对象本身。因此,当你修改对象的属性时,getter和setter方法都会调用新的引用对象,而不是直接修改对象的值。这也可能导致内存溢出错误。
-
如果你尝试在对象上设置多个属性,那么在尝试获取这些属性的值之前,会创建多个引用对象。这会导致内存溢出错误,特别是当对象的大小增加时。
要解决这个问题,你需要确保在访问对象属性之前,已经正确地获取了对象的引用,并且在修改对象属性之前,已经正确地保存了修改后的引用。此外,你也可以考虑使用对象的属性值作为getter和setter方法的返回值,这样可以避免在内存中创建多个引用对象。
-
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
