JS 对象基本用法

319 阅读1分钟

对象的定义

1. 无序的数据集合

2. 键值对的集合

一、声明对象的两种语法

let obj = {'name' : 'james','age': 36}  //简略写法
let obj = new Object({'name' : 'james', 'age': 36})  //规范写法
console.log({'name' : 'james','age': 36} )  //该语句创建的对象没有名字
  • 细节:
  1. 键名是字符串不是标识符,可以包含任意字符
  2. 引号可以省略,省略之后就只能写标识符
  3. 就算是引号省略了键名还是字符串

二、删除对象的属性

新手推荐删除属性语句:

delete obj.['name']

另一种删除属性语句:

delete obj.name

可以用以下语句判断属性是否删除:

'name' in obj === false

注意,以下语句不能断定 'xxx' 是否为 obj 的属性:

obj.xxx === undefined 

三、查看对象的属性

查看自身所有属性

Object.keys(obj)
查看自身+共有属性
console.dir(obj)

或者自己依次用Object.keys打印出 obj._proto_(不推荐)

判断一个属性是自身的还是共有的

obj.hasOwnProperty('toString')

两种方法查看属性

  1. 中括号语法:obj['key']
  2. 点语法:obj.key
  • 坑新人语法:obj[key] // 变量 key 值一般不为 'key

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

修改自身属性

obj['name']='jack'

批量修改自身属性

Object.assign(obj,{'name' : 'james',age': 36});

修改共有属性

Object.prototype['toString'] = 'xxx'

修改原型

let obj = Object.create(common)

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

'name' in obj//可以判断obj对象不含xxx属性

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