JS对象基本用法

声明对象的两种语法

  • let obj = {‘name’ : ‘marry’, ‘age’ : 18}
  • let obj = new Object({‘name’ : ‘marry’})

如何删除对象的属性

对于var obj = {‘name’ : ‘marry’, ‘age’ : 18}

  • obj.name = undefined 是删除键的值
  • delete obj.name是删除键和值,或者delete obj[‘name’]

如何查看对象的属性

  • 查看自生所有属性 Object.keys(obj)
  • 查看自身+共有属性console.dir(obj)或者自己依次用Object.keys打印出obj.proto(不推荐)
  • 判断一个属性是自身的还是共有的obj.hasOwnProperty(‘toString’)

如何修改或增加对象的属性

  1. 直接赋值
  • let obj = {‘name’ : ‘marry’, ‘age’ : 18}
  • let key = ‘name’; obj[key] = ‘lulu’;
  • obj.gender = ‘nan’ 可以用来赋值或者增加属性
  • Object.assign(obj,{p1:1,p2:2,p3:3})可以用来批量赋值(ES6新出得内容)
  1. 无法通过自身修改或增加共有属性
  • let obj = {}, obj2 = {} //共有toString
  • obj.toString = ‘xxx’ 只会改obj自身属性
  • obj2.toString还是在原型上
  1. 若偏要修改或增加原型上的属性
  • obj.proto.toString = ‘xxx’ //不推荐用__proto__
  • Object.prototype.toString = ‘xxx’ //推荐
  • 一般来说,不要修改原型,会引起很多问题
  1. 修改隐藏属性
不推荐使用__proto__
  • let obj = {name:‘lu’}
  • let obj2 = {name:‘xing’}
  • let common = {kind:‘human’}
  • obj.proto = common
  • obj2.proto_ = common
推荐使用Object.create
  • let obj = Object.create(common)
  • obj.name = ‘lu’
  • let obj2 = Object.create(common)
  • obj2.name = ‘jack’
    规范大概的意思是,要改一开始就改。别后来再改

‘name’ in obj和obj.hasOwnProperty(‘name’) 的区别

  • ‘name’ in obj表示name这个属性是否再obj这个对象中,查找方式是先找自己的属性,再到__proto__原型中找共有属性,如果二者都没有,则返回false,否则返回true
  • obj.hasOwnProperty(‘name’) 表示name这个属性是不是obj这个对象自己的属性,它不会到原型中去找,如果有则返回true
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值