class Obj{
constructor(name,age,sex){
this.name=name;
this.age=age;
this.sex=sex;
}
skill(){
console.log("我是es6定义的对象");
}
}
Obj.prototype.fav="敲代码";
var obj1 = new Obj("小学","12","男");
var obj2 = new Obj("小芳","13","女");
console.log(obj1);
console.log(obj1.skill == obj2.skill);//true
console.log(obj1.__proto__);
#in操作符,用于检测对象中是否有某个属性,有就返回true,没有false
console.log("name" in obj1);//true
console.log("name" in Obj);//true
console.log("skill" in obj1);//false
//注意:in方法无法检测到构造函数的原型对象中的方法
console.log("skill" in Obj);//false
console.log("fav" in Obj);//false
//hasOwnProperty()用来检测实例化对象中是否有某个属性或方法
//通过原型链上继承过来的属性或方法无法通过hasOwnProperty来检测。
console.log(obj1.hasOwnProperty("age"));//true
console.log(obj1.hasOwnProperty("skill"));//false
//delete 删除实例化对象中的属性,不能直接删除构造函数中的属性,因为对象还没实例化出来,所以this还不知道指向谁。
delete obj1.name;
console.log(obj1);
console.log(obj2);
ES6对象
最新推荐文章于 2023-04-21 00:54:30 发布