javascript - 如何禁用访问对象的属性?JS
问题描述
如何在 JavaScript 中禁用访问对象的属性?禁用读取属性
让 obj = { 名称:“卡尔” } Object.DefineProperty(obj,'name',{ 可枚举:假, 可写:假, 可配置:假 } console.log(obj.name) // 卡尔
我的目标是通过 get 访问属性(名称)。我想用 get 替换属性的本机访问,还有赋值,并通过自定义集
例子
让 obj = { 名称:“卡尔”, 获取名称() { 返回 this.name + 2; } } console.log(obj.name) // karl2
如果 get 具有属性的 equals 名称,则会导致错误,我无法使其本机通过 get。
Object.defineProerty 没有属性读取属性
解决方案
可以使用 Object.defineProperty 重载本机 set 和 get 函数
const obj = {}
Object.defineProperty(obj, 'name', {
enumerable : false,
configurable : false,
set: function (v){name=v;},
get: function (){return name+2;}
});
obj.name="karl";
console.log(obj.name); // karl2
console.log(obj); // {} name will not be shown
希望这可以帮助你
推荐阅读
- rxjs - rxjs v6 zip 已弃用
- sql - 如何在“执行格式('blah')”中转义百分号
- laravel - 是否可以在自身内部调用资源
- rx-java - flatMap 和 flatMap single 用于分组的 observables
- angular - 在 apache .htaccess 上未检测到 Prerender.io 请求令牌
- git - git:当前分支和分支创建之间的差异
- python - 删除反应频道 | 不和谐.py
- vue.js - Vue 如何实现 webpack 和 service-workers
- python - python中的简单机器人,我想我得到了'or'运算符,还有其他一些东西搞砸了
- java - 当我尝试更新/编辑 Sqlite 数据库 java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 可以帮助我时,我遇到了这个错误