JS对象基本用法

2022-08-08  本文已影响0人  向前进进进

JS对象

定义

1.声明对象的两种语法

let obj={'name':'thomas','age':30}
let obj=new Object{'name':'thomas','age':30}

细节
变量作属性名
let p1='name'
let obj={p1:'thomas'}   //属性名为p1
let obj2={[p1]:'robert'}   ///属性名为name

对比

2.如何删除对象的属性

删除obj的xxx属性的两种写法
delete obj.xxx
delete obj['xxx']
使obj的xxx属性值为undefined
obj.xxx=undefined

注意obj.xxx === undefined

3.如何查看对象的属性

查看自身所有属性名
Object.leys(obj)
查看自身所有值
Object.values(obj)
查看自身所有属性名和属性值
Object.entries(obj)
查看自身+共有属性
console.dir(obj)
判断一个属性是自身的还是共有的
obj.hasOwnProperty('toString')

查看单个属性

两种方法查看属性

请注意请注意: obj.name等价于obj['name'],这里的name为字符串,而不是变量

let name = 'thomas'

obj[name]等价于obj['thomas']


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

直接赋值(可修改可增加)
let obj = { 'name': 'thomas' }
obj.name = 'thomas'//第一种
obj['name'] = 'thomas'//第二种
obj['na' + 'me'] = 'thomas'//第三种
let key = 'name'
obj[key] = 'thomas'//第四种
批量赋值(可修改可增加)

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

修改或增加共有属性

Object.prototype.toString='xxx'

修改隐藏属性
let common = {kind:'human'}
let obj = Object.create(common)
obj.name = 'thomas'   //只赋值一个
Object.assign(obj,{age:18, color:'黄', haircolor:'黑'}   ///批量赋值

规范的意思是,要改就一开始改,不要后面再改,否则影响性能

5.'name' in obj和obj.hasOwnProperty('name') 的区别

'name' in obj可以知道name这个属性是否在obj里面,但是无法得知这个属性是自己的还是共有的
obj.hasOwnProperty('name')不仅可以知道name这个属性是否在obj里面,还可以得知这个属性是自己的还是共有的

上一篇 下一篇

猜你喜欢

热点阅读