for in 语句能够用来遍历一个对象中的一切属性名,该罗列历程会列出一切的属性(包含函数和你能够并不关联的原型中的属性),所以有必要了来过滤掉不想要的值。经常运用的过滤器是 hasOwnProperty 要领,以及运用 typeof 来消除函数。
typeof 操作符能够用于肯定属性的范例。但对原型链中的属性也会发生值:
typeof flight.toString; // 'function'
typeof flight.constructor; // 'function'
这儿时刻能够运用 hasOwnProperty 要领,假如对象具有独占的属性,将会返回 true。hasOwnProperty 要领不会搜检原型链:
flight.hasOwnProperty('number'); // true
flight.hasOwnProperty('constructor'); // false
接着来看罗列。
在 for in 中属性名涌现的递次是不肯定的,所以假如想要确保属性以特定的递次涌现,最好的方法就是完全避免运用 for in 语句,而是运用 for 。