JavaScriptであるオブジェクトのプロパティを列挙するにはfor-inループを使用します。この時列挙されるプロパティには、プロトタイプ連鎖から来たプロパティも含まれることに注意しなければなりません。 プロパティを列挙する際、そのプロパティが(for-inループの対象となる)オブジェクト自身が持つプロパティなのか、それともプロトタイプ連鎖から来たプロパティなのかを判別するには、hasOwnProperty()を使用します。 JSLintでは、for-inによってプロパティを列挙する際、hasOwnPropertyを使用してプロパティのチェックを行わないと「The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype.」という警告が出てし