JS对象中常见的操作方法

利用关键字 delete

const o = {

p: 10,

m: 20

}

delete o.p

console.log(o) // { m: 20 }

// 删除对象的属性后,在访问返回 undefined

console.log(o.p) // undefined

复制代码

五、作为函数参数


const displayPerson = (person) => {

console.log(name: ${person.name || '无名氏'})

console.log(age: ${person['age'] || 0})

}

displayPerson({ name: ‘dengke’, age: 18 })

// name: dengke

// age: 18

displayPerson({ })

// name: 无名氏

// age: 0

复制代码

六、枚举对象的属性


在JS里面枚举对象属性一共有三种方法:

  1. for in: 会遍历对象中所有的可枚举属性(包括自有属性和继承属性)

  2. Object.keys(): 会返回一个包括所有的可枚举的自有属性的名称组成的数组

  3. Object.getOwnPropertyNames(): 会返回自有属性的名称 (不管是不是可枚举的)

1. for...in 会遍历对象中所有的可枚举属性(包括自有属性和继承属性)

const obj = {

itemA: ‘itemA’,

itemB: ‘itemB’

}

// 使用Object.create创建一个原型为obj的对象 (模拟继承来的属性)

var newObj = Object.create(obj)

newObj.newItemA = ‘newItemA’

newObj.newItemB = ‘newItemB’

for(i in newObj){

console.log(i)

}

// newItemA

// newItemB

// itemA

// itemB

// 现在我们将其中的一个属性变为不可枚举属性

Object.defineProperty(newObj, ‘newItemA’, {

enumerable: false

})

for(i in newObj){

console.log(i)

}

// newItemB

// itemA

// itemB

复制代码

补充

如果不想让for...in枚举继承来的属性可以借助Object.prototype.hasOwnProperty()

// 接上例

for(i in newObj){

if( newObj.hasOwnProperty(i) ) console.log(i)

}

// newItemB

复制代码

Object.prototype.hasOwnProperty()该方法在下文有更具体的介绍

2. Object.keys(): 会返回一个包括所有的可枚举的自有属性的名称组成的数组

// 接上例

const result = Object.keys(newObj)

console.log(result) // [“newItemB”]

复制代码

Object.keys()该方法在下文有更具体的介绍

3. Object.getOwnPropertyNames() 会返回自有属性的名称 (不管是不是可枚举的)

// 接上例

const result = Object.keys(newObj)

console.log(result) // [‘newItemA’,‘newItemB’]

复制代码

Object.getOwnPropertyNames()该方法在下文有更具体的介绍<

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值