for...in

for...in 循环只遍历可枚举属性。
Array和 Object使用内置构造函数所创建的对象都会继承自Object.prototype和String.prototype的不可枚举属性,例如 String 的 indexOf() 方法或 Object的toString()方法。
循环将遍历对象本身的所有可枚举属性,以及对象从其构造函数原型中继承的属性。

function ColoredTriangle() {
  this.color = 'red';
}

var triangle = {a: 1, b: 2, c: 3};
ColoredTriangle.prototype = triangle;

var obj = new ColoredTriangle();

for (var prop in obj) {
  if (obj.hasOwnProperty(prop)) {
    console.log(`obj.${prop} = ${obj[prop]}`);
  } 
}

猜你喜欢

转载自www.cnblogs.com/bingery/p/11284281.html