[英]how can i disable access a property of a object ? JS
如何禁用 JavaScript 中 object 的属性的访问? 禁用读取属性
let obj = { name: "karl" } Object.DefineProperty(obj,'name',{ enumerable: false, writable: false, configurable: false } console.log(obj.name) // karl
我的目标是通过 get 访问属性(名称)。 我想用 get 替换属性的本机访问,还有赋值,并通过自定义集
例子
let obj = { name: "karl", get getname() { return this.name + 2; } } console.log(obj.name) // karl2
如果 get 具有等于属性的名称,则会导致错误,我无法通过 get 将其本地化为 go。
Object.defineProerty 没有属性读取属性
您需要保存现有值,然后将属性重新配置为 getter:
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
可以使用 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
希望这可以帮助你
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.