对象是无序的数据组合,键值对的集合。
eg:
let obj = {'gakki' : 'kawaii' , 'age' : 18};
let obj = new Object({ 'gakki' : 'kawaii'});
console.log({'gakki' : 'kawaii' , 'age' : 18});//键名是字符串,不是标识符,可以包含任意字符
//键的引号可以省略,但省略之后只能写标识符
//即使引号省略了,键名也还是字符串
//需要注意的属性名:1e2,1e-2,.234,0xFF,这些会转成字符串
//Object.keys(obj)可以获得obj所有键
//如何用变量作为对象的键:
let x = '233';
let obj = { [x] : 'hey' };
//每个对象都有一个隐藏属性__proto__ ,存储着原型的地址
//hasOwnProperty和in区别:
in关键字用来检查对象中是否存在指定的属性(包含实例属性和原型属性)
对象的hasOwnProperty方法用来检查对象中是否存在指定的属性(只检查实例属性)
操作对象:
删:
delete obj.xxxx;
delete obj['xxxx'];查:
Object.keys(obj)
console.dir(obj)读:
obj['key'] //注意有引号
obj.key
let key = 'xxxxx';
obj[key] //这里的key是变量修改/增加:
直接赋值:
obj.xxx = '123';
obj['xxx'] = '123';批量赋值:
Object.assign( obj , {p1 : 1 , p2 : 2 , p3 : 3});修改隐藏属性:
let common = { 'kind' : 'human'};
let obj = Object.create(common);
obj.name = 'gakki';