JS 对象基本用法

如何声明对象

语法:

  1. 简写方式
let obj = {'name':'frank','age':18}
  1. 标准方式
let obj = new Object({'name':'frank'})

如何删除对象的属性

语法

  1. delete obj.xxx
  2. delete obj['xxx']
    上面代码删除的是属性名和属性值。

如果只想删除属性值,保留属性名,直接重设属性值就好

obj.name = undefined

如何查看对象的属性

查看属性就是读属性

查看对象的属性

  1. 中括号语法
obj['key']
  1. 点语法
obj.key

坑新人语法

obj[key] //key不是字符串,而是变量

注意不要弄混下面的
obj.name 等价于obj[‘name’]
obj.name不等价于obj[name]
这里的name应该是字符串,而不是变量

let name = ‘frank’
obj[name]等价于obj[‘frank’]
而obj.name和obj[‘name’]在这里不同

下面是查看所有属性的方法

Object.keys(obj) 查看key值
Object.values(obj) 查看value值
console.dir(obj) 查看自身属性+共有属性
打印出obj.__proto__这个隐藏属性,但是不推荐,因为不规范

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

修改或增加自身属性

直接赋值

let obj = {name:'frank'}
obj.name = 'frank'  //方式1
obj['name'] = 'frank' //方式2
obj['na'+'me'] = 'frank' //方式3

let key = 'name'
obj[key] = 'frank'//方式4

批量赋值

Object.assign(obj,{age:18,gender:'man'})

修改或增加共有属性

注意:修改或增加的时候只能写自己的属性,无法通过自身修改或增加共有属性
要修改或增加原型上的属性,就修改prototype

obj.__proto__.toString='xxx'//不推荐用__proto__
Object.pototype.toString='xxx'

一般来说,不要修改原型,会引起很多问题

用自己的属性来作为原型,先说不推荐的方式

let obj = {name:'frank'}
let obj2 = {name:'jack'}
let common = {kind:'human'}
obj.__proto__ = common
obj2.__proto__ = common

推荐的方式

let obj = Object.create(common) //以common对象为原型创建obj
obj.name = 'frank'

‘name’ in obj和obj.hasOwnProperty(‘name’) 有什么区别?

‘name’ in obj ,可以判断obj对象里是否有name这个属性,会在所有属性中找,包括原型属性和自身属性。
obj.hasOwnProperty(‘name’) 只会在自身的属性中找name。
下图,toString是在原型中有的,in语法可以找到原型中的toString,而hasOwnProperty则找不到实例本身中有toString。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值