- 判断对象是否拥有某个属性
- 对象的增删改查
- 对象遍历
- 对象的解构赋值
判断对象是否拥有某个属性
1、需求:判断某一个对象是否拥有某一个属性
2、需求:判断某一个对象自身是否拥有某一个属性
对象的增删改查
class Person{}//创建一个空的类
let p=new Person();//空对象实例化
//增加一个属性
//p.name="hrl";
p["name"]="xm";
//增加一个方法
p.say=function(){
console.log("hello world")
}
p.say();
console.log(p);
//删除
delete p.name;
//delete p["name"];
//delete p["say"];
//delete p.say;
//console.log(p);
//修改
p.name="mrl";
//除了这种方式 []的形式也可以进行修改 同样方法的修改也是一样的
//查找
console.log(p.name);
p.say();
对象的遍历
对象的遍历就是用for循环依次取出对象的属性和方法
//对象的遍历
//将指定对象中所有的属性和方法的名称取出来依次的赋值给key这个变量
for(let key in obj){
}
//es6定义的方法
class Person{
constructor(myName,myAge){
this.name=myName;
this.age=myAge;
}
say(){
console.log(this.name,this.age);
}
}
//es6之前定义的方法
function Person(myName,myAge){
this.name=myName;
this.age=myAge;
this.say=function(){
console.log(this.name,this.age);
}
}
let p=new Person("hrl",18);
for(let key in p){
console.log(key);
//注意点 用es6定义的方法会放在原型对象中_proto_
console.log(p[key]);//将值输出来
console.log(p.key);//undefined
//只把属性输出 不输出方法
if(p[key] instanceof Function){
continue;
}
}
对象的解构赋值
let {name,age}={name:"hrl",age:"18"};
console.log(name,age);
//对象的结构赋值与数组的结构赋值类似
//注意:在对象的解构赋值中,左边的变量名称必须和对象的属性名称一致 才能解构出数据
let {a,b}={name:"hrl",age:"18"};
console.log(a,b);//undefined undefined