声明对象的两种语法
let obj1 = { 'a' : 1 } // 方式一
let obj2 = new Object({ 'a' : 1 }) // 方式二
方式一是常用写法。
对象的key值是字符串,不是标志符,可以包含任意字符(就算省略引号,也是字符串,且省略引号时需要注意标志符格式)
如何删除对象的属性
delete obj.xxx //
delete obj.['xxx']//
obj.xxx = undefined 时,该属性的value被删除,key保留
如何查看对象的属性
Object.keys(obj) //查看所有键
Object.values(obj) //查看所有值
console.dir(obj) //查看所有公有属性+私有属性
'key' in obj //查看对象是否有该属性
obj.hasOwnProperty('key') //查看对象是否私有该属性
obj['key'] //查看对象属性
obj.key //同上
如何增加或者修改对象的属性
- 直接赋值
- 批量赋值
Object.assign(obj,{a:1,b:2,c:3}) //将a:1,b:2,c:3属性赋值给obj
- 替换原型
let obj = Object.create(common) //创建一个obj对象,将他的原型替换为commen对象
一般情况下,不应该编写有关
__proto__的相关代码