JS对象

89 阅读1分钟

对象是无序的数据组合,键值对的集合。

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';