返回
首页 > 生活常识

js如何删除对象的属性(js对象添加属性)

时间: 2023-01-27

js如何删除对象的属性,js对象添加属性。小编来告诉你更多相关信息。

1. 属性存取器

设置一个对象的o属性,不可以大于x。

let obj = {

js如何删除对象的属性(js对象添加属性)

y:null,

set o(newVlaue){//存是有一个默认值的就是你要存入的值

return this.x += newValue

get o(){

return this.y

obj.o = 2

console.log(obj.x)// => 3

存取器可以用于返回一些你需要处理加工的数据,比如平方,相反值,等等

2. 查询属性

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 不可枚举

3. 属性特性

像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

猜你喜欢

版权所有 Copyright©2023 餐饮美食网 版权所有

粤ICP备15109582号

联系邮箱:187348839@qq.com