JS 对象基本用法

147 阅读2分钟

对象定义:

1. 无序的数据集合
2. 健值对的集合

注意

  • 键名是字符串,不是标识符,可以包含任意字符
  • 引号可以省略,省略之后就只能写标识符
  • 就算引号省略,键名也还是字符串

声明对象的两种语法

写法一:

let obj = { 'key1' : 'value1' , 'key2' : 'value2'}

写法二:

let obj = new Object({ 'key1' : 'value1'})
console.log ({'key1' : 'value1' , 'key2' : 'value2'})

如何将变量做为属性名

let a = 'xxx'
var obj = {[a]:111}
  • 将a用[]包起来,此时xxx是属性名;若不用[]a就会变成属性名

对象的隐藏属性

JS中每个对象都有一个隐藏属性,这个隐藏属性存储着其共有属性组成的对象的地址,这个共有属性组成的对象叫做原型。也就是说,隐藏属性存储着原型地址。

原型

  • 每个对象都有原型,原型里存着对象的共有属性
  • 对象的原型也是有对象的,所以对象的原型也有原型;obj={}的原型即为所有对象的原型,这个圆形包含所有对象的共有属性,是对象的根,这个对象也是有原型的,是null。

删除对象的属性

delete obj.xxxdelete obj['xxx']

即可删除obj的xxx对象

查看对象的属性

看所有属性

Object.keys(obj) //查看自身所有属性名
Object.values(obj) //查看自身的属性值
Object.entries 或 obj(直接打对象名) //查看自身的属性名和属性值
console.dir(obj) //查看自身+共有属性

查看属性

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

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

直接赋值

let obj={name: 'frank'}
obj.name = 'frank'   等价于  obj['name'] = 'frank'
let key = 'name' ;obj[key]='frank' //将变量作为属性名

批量赋值

OBject.assign(obj,{age:18,genger:'man'})

修改隐藏属性

let obj = Object.creat(common)
obj.name = 'frank'//在创建对象时就将原型修改

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

'name' in obj 是用来查看一个属性是否存在于对象中

obj.hasOwnProperty('name') 是用来判断一个属性是自身的还是共有的