JS 对象基本用法

115 阅读1分钟

一、声明

  1. let obj = {'name':'dlxx','age':23} (nameage只能是字符串,不加''也是字符串,键名只能是字符串(可以包含任意字符,第一个数字也可以))
  2. let obj = new Object({'name':'dlxx','age':23})(正规写法,但是上面写法简单) 当用变量声明:
let a = 'dlxx'
var obj = {
 [a] : 1
 }  //不加[]会变为字符串'a'

二、删除对象的属性

  • delete obj.name (删除属性名和属性值)
  • delete obj['name'](删除属性名和属性值)
  • obj.name = undefined (仅仅删除属性值)
  • 判断是否含有xx属性:'xx' in obj === true/false

三、查看对象的属性

  1. 查看自身属性
  • Object.keys(obj) (查看自身所有属性)
  • Object.values(obj) (查看自身所有属性值)
  • Object.entries(obj)(查看自身属性和属性值)
  1. 查看原型属性
  • console.dir(obj) (按目录打印出自身和原型属性)
  1. 查看属性值
  • obj['name']
  • obj.name
  • obj[name] (此时,name是变量,要先求[]里的值)
  1. 'name' in objobj.hasOwnProperty('name') 的区别
  • obj.hasOwnProperty('name')仅查看是否为自身属性
  • 'name' in obj无法区分是自身属性或原型属性

四、修改或增加对象的属性

  1. 直接赋值:obj['name'] = 'dlxx'
  2. 批量赋值:Object.assign(obj,{name:'dlxx',age:23})
  3. 修改原型属性:obj.__proto__['toString']='xxx'
  4. 修改原型属性:Object.prototype['toString']='xxx'
  5. 改原型:obj.__proto__= common
  6. 改原型:let obj = Object.create(common)
  7. __proto__不推荐使用

五、 注意

  1. obj.name等价于obj['name']
  2. obj.name不等价于obj[name]