Object.keys(obj) 返回对象自身可枚举的属性组成的数组
var obj = {
name:"jack",
age: 20,
height: 180,
weight: "75kg",
dance: function(){
conosle.log("I can dance well");
}
}
Object.prototype.abc = 123;
Object.keys(obj);
//["name", "age", "height", "weight", "dance"]
Objetc.getOwnPropertyNames(obj);
//["name", "age", "height", "weight", "dance"]
for(let key in obj){
console.log(key) //name age height weight dance abc
}
Object.keys返回的是是自身可枚举的属性组成的数组,如果某个属性的enumerable是fasle,则不会被返回。
Object.getOwnPropertyNames(obj) 返回对象自身所有的属性组成的数组(包括不可枚举的,enumerable: false的)。
for in则会遍历对象所有可枚举属性包括原型上的。(以上例子中的abc)
Object.assign(target,…source) 将一个或多个source对象的自身可枚举属性复制到target对象 ,并返回target对象。如果键值相同,则被source对象覆盖。可用于浅拷贝。