1.对象的定义与声明
- 定义:无序的数据集合(键值对的集合)
- 声明:两种声明方式如下↓
let obj1 = new Object({ name: 'jackey', age: 18 });
let obj2 = { name: 'jackey', age: 18 };
- 细节:就算引号省略,键名(属性名)还是字符串
- 注意:
obj["property"]等于obj.property,表示属性
obj["property"]不等于obj[property],这里property是变量
2.删除对象的属性
delete:可以删除对象的属性名和属性值
obj.property = undefined:只能赋值属性值为undefined而没办法删除属性名
- 删除属性的两种方式↓
delete obj.property;
delete obj["property"];
3.查看对象的属性
- 查看自身所有属性名:
Object.keys(obj)
- 查看自身+共有属性:
console.log(obj)
- 检查一个属性是否是一个对象的属性(私有):
obj.hasOwnProperty('property')
- 检查一个属性是否是一个对象的属性(私有+共有):
'name' in obj
PS:共有属性即在原型(__proto__)上的属性
3.修改或增加对象的属性
- 直接赋值
赋值已有属性就是更改,赋值未有属性就是添加
let obj = { name:'pray' };
obj.name = 'frank';
obj['name'] = 'frank';
obj.age = 18;
obj['age'] = 18;
Object.assign(obj, {age: 18, gender: 'man'})
let obj ={}
obj.__proto__.toString = 'xxx';
Object.prototype.toString = 'xxx';
let obj = {name:'frank'}
let obj2 = {name: 'jack'}
let common = {kind: 'human'}
obj.__proto__ = common
obj2.__proto__ = common
let obj = Object.creat(common);
obj.name = 'frank'