《JS 对象基本用法》

86 阅读1分钟

一、JS的对象

  • 定义:无序的数据集合,键值对的集合
  • 写法:
  1.             let obj = { 'name': 'frank', 'age': 18 }
    
  2.             let obj = new Object({'name': 'frank'})
    
  3.             console.log({ 'name': 'frank, 'age': 18 })
    
  • 注意:
  1. 键名是字符串,不是标识符,可以包含任意字符;
  2. 引号可省略,省略之后就只能写标识符;
  3. 就算引号省略了,键名也还是字符串;

二、如何删除对象的属性

  • delete obj.xxx 或 delete obj['xxx']即可删除 obj 的 xxx 属性; image.png

三、如何查看对象的属性

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

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

- 直接赋值:

  • let obj = {name: 'frank'} // name 是字符串
  • obj.name = 'frank' // name 是字符串
  • obj['name'] = 'frank'
  • obj['na'+'me'] = 'frank'
  • let key = 'name'; obj[key] = 'frank' image.png

- 批量赋值

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

- 修改或增加共有属性

  • 无法通过自身修改或增加共有属性,但如果就是要修改或增加原型上的属性:
  • obj._ _ proto_ _ .toString = 'xxx' image.png
  • Object.prototype.toString = 'xxx' (更推荐使用) image.png
  • 一般来说,不要修改原型,会引起很多问题,最好创建时就改好,别后来才改;

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

  • 不含属性名 'xxx' in obj === false
  • 判断一个属性是自身的还是共有的 obj.hasOwnProperty('toString')