630   JS

ES 6 中,增加了对象可枚举属性的修改

var p = newPerson();
Object.defineProperty(p, "sex", {
    value: "female",
    enumerable: false//是否枚举
});
对于可枚举属性,以下方法中获取得到

1,for…in循环:只遍历对象自身的和继承的可枚举的属性。

2,Object.keys():返回对象自身的所有可枚举的属性的键名。

3,JSON.stringify():只串行化对象自身的可枚举的属性。

4,Object.assign(): 忽略enumerable为false的属性,只拷贝对象自身的可枚举的属性。

其中,for…in会把继承的可枚举属性也列出来,为了避免这种情况,可通过以下方法解决:
 for(var i in p){
// 是否自身属性
if(!p.hasOwnProperty(i)){
continue
}
console.log(p[i])

}




Leave a Reply

Your email address will not be published. Required fields are marked *