object对象
世间万物皆可是对象
储存的方式是有序,使用时必须按照存储顺序进行操作
声明对象
方式1:
字面量
let person={};
对象初始化
书写格式:
关键字 对象名 赋值符号 大括号
在大括号中
{
属性名1:属性1,
属性名2:属性2,
...
属性名N:属性值N,
}
注:属性值若是函数:则为对象的方法,反之为对象的属性
let person2={ name:"z3", aeg:18, song:function(){ console.log("11111") } }
增、删、改、查
查找:
console.log(person2.name) //z3
person2.song(); //111111
返回对象中是否存在要查找的键名,即Boolean
书写格式:"键名" in 对象名
let temp="class" in person2;
console.log(temp);
增加:
方式一:对象.键名 赋值符号 键值
person2.gender="male";
方式二:对象 [键名] 赋值符号 键值
注:键名需要提前赋值,即键名识别为变量
let mon="money";
person2[mon]=1000;
方式三:对象 ["键名"] 赋值符号 键值
person2["score"]=100;
防止新增时,修改对象中已经存在相同的键名
使用Symbol
实参是别名,方便以后调用Symbol的键名
let age=Symbol();
let age = Symbol('age'); person2[age] = 100; console.log(person2.age); //18 console.log(person2[age]); //100 console.log(person2);
修改:
person2.age = 19; console.log(person2.age); //19 let temp = "age"; person2[temp] = 20; console.log(person2.age); //20 person2["age"] = 21; console.log(person2.age); //2
删除:
书写格式:关键字 对象名.键名
delete person2.age;
delete person2.song; 删除方法时不需要加小括号
console.log(person2) //undefined
对象的方法:
let person3 = { name: "z3", age: 18, song: function() { console.log(`lalalalalalalala~~`); } };
遍历键名
for (let index of Object.keys(person3)) { console.log(index); }
遍历键值
for (let item of Object.values(person3)) { console.log(item); }
遍历键值对
for (let arr of Object.entries(person3)) { console.log(arr[0] + "," + arr[1]); }
遍历键名,但不包含Symbol
for (let index in person3) { console.log(index); }
遍历键名,包含Symbol
let temp = Reflect.ownKeys(person3); console.log(temp);
在普通对象中,谁调用this,this就代表谁
let xiaoming = { city: '成都', age: 18, intru: function() { console.log(` 大家好,我来自于${this.city}, 我今年${this.age}岁了`); }, }; xiaoming.intru();