for in文だとプロトタイプチェーン上のプロパティまで列挙されてしまう そのため、自身のプロパティだけを判別して列挙するためにはtypeofまたはhasOwnPropertyを使います //typeofを用いた場合 for (name in obj) { if (typeof(obj[name]) !== 'function') { console.log(name+'は自身のプロパティです'); } } //hasOwnPropertyを用いた場合 for (name in obj) { if(obj.hasOwnProperty(name)) { console.log(name+'は自身のプロパティです'); } }