for in 与Object.keys()的区别

for in 与Object.keys()的区别

function test(a, b) {
    this.a = a;
    this.b = b;
}
test.prototype = {
    c: "c"
}

var _a = new test("a", 1);

console.log(Object.keys(_a));//["a","b"]

for (var key in _a) {
    console.log(key);
    // a,b,c
}

总结:

Object.keys():返回一个数组,数组值为对象自有的属性,不会包括继承原型的属性

for in :遍历对象可枚举属性,包括自身属性,以及继承自原型的属性