- 声明对象的两种语法
var obj ={
name:'abc'
age:19
}
var obj2 = new Object({
name:'abc'
age:19
})
- 删除对象的属性
删除obj已有属性
delete obj.age
delete obj['age']
- 查看对象的属性
Object.keys(obj)//查看自身属性
console.dir(obj)//查看自身+共有属性
![](https://img.haomeiwen.com/i13812131/4ff4ede000070507.png)
![](https://img.haomeiwen.com/i13812131/cb14b75e5edd445b.png)
obj['name']//'abc'
obj.name//'abc'
- 修改或增加对象的属性
//单个赋值
obj['name']='aaa'
obj.name='aaa'
//批量赋值
Object.assign(obj,{gender:'female'})
无法通过自身修改原型上的属性
obj.toString='xxxxx'
![](https://img.haomeiwen.com/i13812131/c02f1631675e7fe8.png)
修改原型上的属性
obj = Object.create({kind:'human'})//创建原型上新属性kind
obj.__proto__.toString='xxx'//不推荐使用,会改变原型上共有属性
- 'name' in obj和obj.hasOwnProperty('name') 的区别
属性名 in obj 判断属性名是否存在(包括自身属性和原型上共有属性上)
obj.hasOwnProperty('属性名') 只检查自身属性是否含有该属性名
网友评论