《JS 对象基本用法》

122 阅读2分钟

JS对象

js对象可以是任何事物,可以是无序的数据集合,可以是键值对集合.

声明对象

  1. let 对象名 = {属性名:属性值} 这是熟悉的写法,不是正规的写法
    实例 let obj = {'name':'peng','age':18}
  • let 对象名 = new Object ({属性名:属性值}) 这是正规写法
    实例:let obj = new Object({'name':'peng','age':18})
  1. console.log({属性名:属性值}) 实例 console.log({'name':'peng','age':18})

js对象是动态的----可以新增删除修改属性

1、删除属性

delete obj.xxx或delete obj['xxx']

delete.png

判断一个属性是否自身属性
'name' in obj
判断一个属性是自身的还是共有的
obj.hasOwnProperty('tostring');

2、查看属性

  • 查看自身所有属性
let obj = {'name' : 'peng', 'age':18}
Object.keys(obj)  //{'name', 'age'} 查看所有key
Object.values(obj)   //{'peng', 18} 查看所有值
Object.entries(obj)   //查看所有key和值
  • 查看自身属性+共有属性 console.dir(obj)

查看.png

  • 查看单个属性的值
let obj = {'name' : 'peng', 'age':18}
obj['name']   //'peng' 
obj.name      //'peng'
obj[name]     //不加引号,表示name是一个变量,要先求变量的值,再得到最终的结果

obj.name 等价于 obj['name']
obj.name b不等价于 obj[name]

name是字符串,[name]是变量

3、修改或增加属性(写属性)

在JS中修改和增加的操作是一样的。如果属性存在,修改就是修改;如果属性不存在,修改就是增加。

  • 直接赋值
let obj = {'name' : 'peng'}
obj.name = 'peng'
obj['name'] = 'peng'
let key = 'name'; obj[key] = 'peng'
  • 批量修改
Object.assign(obj,{'age': 18, gender: 'man'})
改公有属性
Object.prototype['toString']='name'
改原型
let obj = Object.create(common);
obj.name = 'peng'

4、注:'name' in obj和obj.hasOwnProperty('name') 的区别?
'name' in obj:用于判断属性'name'是否为对象obj的属性,只要通过对象能访问到属性就返回true;
obj.hasOwnProperty('name')用于判断属性'name'是否为对象obj的共有属性,只在属性存在于实例中时才返回true。

参考链接:JS对象基本语法 - 知乎 (zhihu.com)