JavaScript for…inサイクルの罠


For...In宣言は、配列またはオブジェクトの属性を巡回するために使用されます.
まずコンストラクタを定義します.
var Status = function(arg){
    this.arg = arg;
}
Status.prototype.getStatus = function(){
    return this.arg;
}
続いてインスタンス化:
var instance = new Status('a test string');
instance.getStatus();
instance.ooxx = 'ooxx';
for...inで属性を巡回:
for(i in instance){
    console.log(i);
}
運転結果を見てください.
arg
ooxx
getStatus
プロトタイプの方法も遍歴されていますが、実は欲しくないです.そうする必要があります.
for(i in object){
    if(object.hasOwenProperty(i)){
        //...
    }
}
これで関数とプロトタイプの属性方法を鳥からフィルタリングできます.