【发布时间】:2012-02-11 07:15:33
【问题描述】:
我目前正在尝试在 JavaScript 中使用原型。
为了试验这一点,我编写了一个函数,它可以有效地将 where 子句放到数组中:
Array.prototype.where=(function(){
var tmpArr=[],
success;
for (var x in this){
var success=true;
for (var i in arguments){
if (this[x][arguments[i][0]]!=arguments[i][1]){
success=false;
break;
}
}
if (success==true){
tmpArr.push(this[x]);
}
}
return tmpArr;
});
一个例子是:
arrayName.where([0, 'Fred'], [1, 'Bloggs']);
为了测试,这很好用。唯一的问题是如果你要运行
for (var x in someArrayHere){
console.log(someArrayHere[x]);
}
你得到了数组的输出,但是记录代表你原型化的函数。
据我所知,这是通过将函数设置为不可枚举来排序的,但我找不到任何解释如何停止它的文章。
我会怎么做呢?还是我每次都必须执行以下操作?
for (var x in someArray){
if (typeof tSch[x]!="object"){
}
}
【问题讨论】:
标签: javascript prototype enumerable