声明对象
- {}
- new Object
let obj = {name:'dilireba',age:'20'}
let obj2 = new Object({name:'dilireba',age:'20'})
删除对象属性
- delete obj['name'] (删除属性名)
- delete obj.name (删除属性名)
- obj.name = undefined (删除属性值)
查看对象属性
- Object.keys(obj) 查看属性名
- Object.values(obj) 查看所有值
- Object.entries(obj) 查看[属性名,属性值]
修改、增加对象属性
- 直接赋值
let obj = {name:'dilireba',age:'20'}
obj.gender = '男'
- 批量赋值
Object.assign(obj,{shuxue:98,yingyu:66})
- 原型修改
obj.__proto__.toString = 'asd'// 修改原型的属性值 //不推荐使用
Object.prototype.toString = 'qwe'// 修改原型的属性值 //不推荐使用
obj.__proto__ = Array.prototype //修改obj的原型 // 不推荐使用
var person = Object.create({name : 'li'})
// 修改原型指向,但是name属性并非在person上
结果:

in和hasOwnProperty的区别
- in obj是否可用该属性,在原型链中的也可以
- hasOwnProperty 属性是否在自己中
let obj = {name : 'dilireba'}
'name' in obj
true
obj.hasOwnProperty('name')
true
'toString' in obj
true
obj.hasOwnProperty('toString')
false