在Javascr ipt中,遍历一个对象的属性往往没有在其他语言中遍历一个哈希(有些语言称为字典)的键那么简单。这主要有两个方面的原因:一个是,Javascr ipt中的对象通常都处在某个原型链中,它会从一个或多个的上层原型上继承一些属性.第二个原因是,Javascr ipt中的属性不光有值,它还有一些除了值以外的其他特性,其中一个影响属性遍历的特性就是[[Enumerable]],如果该值为true,则称这个属性是可枚举的,否则反之。
知道了这些,我们就可以把属性的遍历分为四种情况.
注:示例