声明对象的语法
-
var a=1;过时版本,尽量不用 -
let a=1;块作用域,必须先声明再使用,可以不赋值(为undefined),全局声明的let变量不会成为window属性,配合for循环非常有用。 -
const a=1;声明常量,声明时必须赋值,赋值后不可更改
如何删除对象的属性
-
删除对象obj的xxx属性:
delete.obj.xxx或delete.obj['xxx'] -
重复删除不会报错,用
'xxx' in obj ===false判断是否delete成功
如何查看对象的属性
-
Object.keys(obj)访问obj的所有属性名 -
Object.value(obj)访问obj的所有属性值 -
Object.entires(obj)返回两个数组,分别存着obj的所有属性名和属性值 -
cosole.dir(obj)可以查看obj的所有属性,包括原型所拥有的属性 -
直接调用obj即可查看所有的键值对
如何修改或增加对象的属性
-
通过为对象的属性名赋值即可修改或增加对象的属性,对象名存在时修改属性值,对象名不存在时添加属性,语句为
let obj ={name:'frank'};,obj.name='frank';,obj['name']='frank'; -
为对象批量赋值多个属性名及对应的属性值:
Object.assign(obj,{age:18,gender:'male'})
'name' in obj和obj.hasOwnProperty('name') 的区别
-
'name' in obj不能判断出'name'为obj的自身属性还是obj的原型所有.obj自身或者原型中有'name'就会返回true -
obj.hasOwnProperty('name')只判断obj自身是否拥有'name'属性,不会判断obj的原型
通过原型创建对象
通过原型common创建对象obj:
var obj=Object.create(common,{
name:{value:'frank'},
age:{value:18},
gender:{value:'man'}
}
);