javascript - 删除 Javascript 数组上的 getter
问题描述
我有一些代码在数组中使用 getter,但遇到了一个问题,delete
即没有从数组中删除元素。我想知道是否有办法开始delete
工作。
这是一些复制问题的玩具代码:
let x = [];
Object.defineProperty(x, 0, {
get: function() {
return;
}
});
delete x[0];
编辑:切片实际上不是一个选项,似乎,因为只有元素本身而不是 getter 被复制。
解决方案
您需要使用configurable: true
选项定义属性。然后你可以删除它,getter 将被删除。
let x = [];
Object.defineProperty(x, 0, {
configurable: true,
get: function() {
return "fake value";
}
});
console.log(x[0]);
delete x[0];
console.log(x[0]);
推荐阅读
- java - 注册耳机广播android时接收随机事件,如耳机拔出
- amazon-web-services - 集群扩展组立即需要 2 个实例,而无需在指定容量提供程序上运行任何任务
- javascript - Froala React 组件抛出“无法设置未定义的属性 'more_btn'”
- python - Heroku:NodeJS:如果我使用 NodeJS 应用程序,则缺少 pip
- c# - 在接口类.Net Framework 4.5上使用静态函数
- amazon-web-services - 如何使用来自云前端分发的签名 cookie 访问受限媒体文件,该分发使用与应用程序域不同的域?
- html - 如何为人们可以运行 linux 命令并查看输出的网站创建 linux 终端?
- elasticsearch - 弹性搜索 - 过滤多个 OR 条件的条件
- db2 - 我可以手动编辑 flyway schema_version 数据吗?
- react-native - React Native:构建进度条组件