增
Object[itme]||Object.itme
let obj = {}
obj['name'] = '张三'
obj.age = 18
console.log(obj) //{name:'张三',age:18}
删
delete obj.key
delete obj.key 删除对象中的一个属性
let obj = {name:'张三',age:'18',city:'Bj'}
delete obj.city //{name:'张三',age:'18'}
改
let obj = {name:'张三',age:'18',city:'Bj'}
obj.name = '李四'
console.log(obj) //{name:'李四',age:'18',city:'Bj'}
Object.assign()
将一个或多个对象可枚举的属性的值复制到目标对象
语法:
Object.assign(target, ...sources)
let obj = {
name: '张三',
age: 18
}
Object.assign(obj,{name:'李四', city:'北京'})
obj //{name: "李四", age: 18, city: "北京"}
查
for in 可以遍历对象
let obj = {
name: '张三',
age: '18',
city: 'BJ',
}
for(let key in obj){
console.log(key) // name,age,city
console.log(obj.key) // 张三,18,BJ
}
in 判断对象属性是否在对象中
let obj = {
name: '张三',
age: '18',
city: 'BJ',
}
'name' in obj //true
Object.hasOwnProperty()
for in 和 in 有个问题,它不仅能获取到对象中的属性,还能获取到原型中的属性。如果我们只想获取到对象中属性就可以用hasOwnProperty()
function Obj(name,age) {
this.name = name
this.age = age
}
Obj.prototype.city = '北京'
let obj = new Obj('张三',18)
for(let key in obj){
console.log(key) // name age city
}
'city' in obj //true
obj.hasOwnProperty('city') //false
Object.keys() 获取所有的 key
Object.keys 遍历对象,将对象中所有的 key 放到一个数组中返回
let obj = {
name: '张三',
age: 18,
city: '北京'
}
Object.keys(obj) // ["name", "age", "city"]
Object.getOwnPropertyName() 获取所有的 key
Object.getOwnPropertyName 方法与 Object.keys 类似
Object.toStirng()
Object.toStirng 方法会返回对象的字符串形式
let obj = {
name: '张三',
age: 18,
city: '北京'
}
obj.toString() //"[object Object]"
Object.create()
Object.create 方法可以将一个实例对象作为原型去生成实例
let obj = {
name: '张三',
age: 18,
city: '北京'
}
let obj2 = Object.create(obj)
obj2.keys // '张三'
Object.create 方法还可以接收第二参数,作为创建实例对象的属性
let obj = {
name: '张三',
age: 18,
city: '北京'
}
let obj2 = Object.create(obj,{
sex: {
value: '男'
},
phone: {
value: '138*******88'
}
})
obj2.sex // '男'
obj2.phone // '138*******88'