JS 对象基本用法

1:声明对象的两种语法

let obj = {name:"Harrient",age:18} //简单写法
let obj2 = new Object({"name":"Jane","age":19}) //正规写法

键名是字符串,键名的引号可以省略,省略之后只能写标识符或者数字

2:如何删除对象的属性

delete obj.xxx 或者 delete obj['xxx']
"age" in obj //false 查看age是否是obj的属性
obj.hasOwnProperty("name") //true "name"是否是obj对象的自身属性

3:如何查看对象的属性

Object.keys(obj)  //查看对象的自身所有属性
console.dir(obj) //查看对象的自身和共有所有属性
obj.__proto__ //查看对象的自身和共有属性,不推荐使用
obj.name //查看属性
obj.['name'] //查看属性

注意:obj.name等同于obj['name'],而obj.name不等价于obj[name],在obj[name]中name是变量,和前两个不同

4:如何修改或增加对象的属性

//直接赋值:
let obj = {name:"Harrient"}
obj.name = "Lily"
obj['name' ] = "Lily" 
Object.assign(obj,{name:"张三",address:"北京"}) //批量修改自身的属性
obj.__proto__.toString='yyy' //修改共有属性 ,不推荐使用
Object.prototype.toString='yyy' //修改共有属性
let common = {hair:"black"}
obj.__proto__=common //修改隐藏属性,不推荐使用
let person = Object.create(common ) //修改隐藏属性 

增加同上,已有属性则是修改属性,没有属性则是增加属性

5:'name' in obj和obj.hasOwnProperty('name') 的区别

'name' in obj //判断对象是否含有"name"属性,但是无法区分"name"是否obj的自身属性还是共有属性
obj.hasOwnProperty('name')  //判断属性是否是对象的自身属性 

你可能感兴趣的:(JS 对象基本用法)