js如何删除对象的属性(js对象添加属性)
js如何删除对象的属性,js对象添加属性。小编来告诉你更多相关信息。
设置一个对象的o属性,不可以大于x。
let obj = {
y:null,
set o(newVlaue){//存是有一个默认值的就是你要存入的值
return this.x += newValue
get o(){
return this.y
obj.o = 2
console.log(obj.x)// => 3
存取器可以用于返回一些你需要处理加工的数据,比如平方,相反值,等等
js一个有很多方法可以来查询对象是否拥有某个属性,我这里介绍几个常用的方法
let y = {a:2};
let obj = Object.create(a);
obj.b = 5;
in (注意不要和 for in 混合)左侧是属性右侧对象
consoconsole.log("a" in obj);// true
consoconsole.log("b" in obj);// true
consoconsole.log("toString" in obj);// true
hasOwnProperty() 查询自身的属性,对继承的返回false
consoconsole.log(obj.hasOwnProperty("a"));// false 继承y对象
consoconsole.log(obj.hasOwnProperty("b"));// true
consoconsole.log(obj.hasOwnProperty("toString"));// false 继承Object
propertyIsEnumerable() 在hasOwnProperty()上增加了,必须是可枚举的属性
consoconsole.log(obj.propertyIsEnumerable("a"));// false 继承来的
consoconsole.log(obj.propertyIsEnumerable("b"));// true
consoconsole.log(obj.propertyIsEnumerable("toString"));// false 不可枚举
像set get这些就是属性特有的属性,特性有 值(value) 枚举性(eunmerable) 可写性(wirteable) 配置性(configable)
查询属性的特性状态 (只能是当前对象属性,继承的不
Object.getOwnPropertyDescriptor(obj, property)
let obj = {
name:'lao wang',
message:'hello'
let property = Object.getOwnPropertyDescriptor(obj,"name");
console.log(property);/*{
configurable: true
enumerable: true
value: "lao wang"
writable: true
配置性:可以删除修改; 可枚举:for in 可以遍历出来的属性可写:可以修改值
修改对象属性特性 Object.defineProperty(obj,property,setting);
Object.defineProperty(obj,"name",{
configurable: true
enumerable: false //不可枚举
value: "lao wang"
writable: false //改变可写性
obj.name = "lao li";// 在严格模式下会保错
console.log(obj.name);
console.log(obj.propertyIsEnumerable("name")); // false