なぜ出るのか for-inステートメントはオブジェクトのプロパティを”全て"列挙する for (variable in object) { ... } その為、対象のオブジェクトのプロパティだけではなく、prototypeから継承した(prototype汚染された)プロパティも列挙される function A() {} A.prototype.say = 'ファミチキください'; var b = new A(); b.think = '(ファミチキください)'; for (prop in b) { console.log("プロパティ名1:" + prop + "\n"); console.log("値1:" + b[prop] + "\n"); } //出力結果 //プロパティ名1:think //値1:(ファミチキください) //プロパティ名1:say //値1:ファミチキください 対