JS 对象基本用法

85 阅读1分钟

1.声明对象的两种语法

let obj={'name':'xxx','age':18}
let obj=new Object{'name':'xxx','age':18}
//键名是字符串,不是标识符,但是如果省略引号,只能写标识符,依然是字符串

2.如何删除对象的属性

delete obj.xxx或者delete obj['xxx']

3.如何查看对象的属性

Object.keys(obj)//查看自身所有属性
console.dir(obj)//查看+原型共有属性
obj.hasOwnProperty('toString')//判断一个属性是自身的还是共有的
obj['key']或者obj.key查看某个属性,中括号里的必须是''的字符串

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

//直接赋值
let obj={name:'xxx'}
obj.name='xx'
obj['name']='xxx'
还可以
let key='name'
obj[key]='xxx'

//批量赋值
Object.assign(obj,{age:18,gender:'man'}

//修改或增加共有属性
无法通过自身修改或者增加共有属性
可以obj.__proto__.toString='xxx'Object.prototype.toString='xxx'
不推荐修改原型上的共有属性

//修改隐藏属性
let obj={name:'xxx'}
let obj2={name:'xxx'}
let common={kind:'human'}
obj.__proto__=common
obj2.__proto__=common
//但是尽量在创建对象的时候就改了隐藏属性
let obj=Object.create(common)
obj.name='xxx'

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

二者都能判断对象是否含有某个属性,区别是in会检查隐藏属性,hasOwnProperty不会