gpt4 book ai didi

Javascript:如何隐藏对象的属性?

转载 作者:搜寻专家 更新时间:2023-11-01 05:02:02 26 4
gpt4 key购买 nike

我想隐藏对象的某些属性,并在迭代时显示一些属性。所以我尝试使用原型(prototype),但这不起作用:

​function Car(){}

Car.prototype.version = '1.0';

var car_instance = new Car();
car_instance.make = 'BMW';
car_instance.model = 'x5';

for(property in car_instance){
document.body.innerHTML += property + '<br>';
}

但这也会输出 version:

make
model
version

我真的很喜欢隐藏一些函数/方法的想法,但可以像 car_instance.version 一样轻松访问它,事实上,如果我 console.log 该对象,它在 proto 下也有其他属性 不包含在 for in 循环中。

那我应该怎么解决呢?

最佳答案

如果你想从 for in 循环中“隐藏”属性, 是实例的直接属性,你可以使用 Object.defineProperty:

Object.defineProperty(car_instance, "version", {
value: "1.0",
writable: true,
configurable: true,
enumerable: false // don't make it appear in a for in loop
});

关于Javascript:如何隐藏对象的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10970859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com