我如何禁止访问对象的属性? JS

问题描述 投票:0回答:1

如何禁用JavaScript中对象的属性?禁止读取属性

让obj = {名称:“ karl”}Object.DefineProperty(obj,'name',{枚举:错误,可写:错误,可配置:false}console.log(obj.name)//卡尔

我的目标是通过获取来访问属性(名称)。

示例

让obj = {名称:“ karl”,获取getname(){返回this.name + 2;}}console.log(obj.name)// karl2

如果get具有属性的相等名称,则会导致错误我无法通过本地获取它。

Object.defineProerty没有属性读取属性

javascript ecmascript-6 properties access disable
1个回答
0
投票

您需要保存现有值,然后将属性重新配置为吸气剂:

const obj = {
  name: "karl"
}
const origName = obj.name;
Object.defineProperty(obj, 'name', {
  enumerable: false,
  configurable: false,
  get() {
    return origName + 2;
  }
});

console.log(obj.name) // karl
© www.soinside.com 2019 - 2024. All rights reserved.