for-in循环有一个问题,就是它不仅遍历对象的实例属性,同样还遍历从原型继承来的属性。当遍历自定义对象的属性时,往往会因为意外的结果而终止。所以要加上hasOwnProperty()方法来过滤实力属性。这也是DC大牛建议的。
hasOwnPrototype()方法可以检测一个属性是否存在于对象实例中。
var prop; var object = { name: "name", value: "value" }; for (prop in object) { if (object.hasOwnProperty(prop)) { console.log(prop); } }