我想在 Array.prototype 和 Object.prototype 上定义辅助方法。我目前的计划是做类似的事情:
Array.prototype.find = function(testFun) {
// code to find element in array
};
这样我就可以做到这一点:
var arr = [1, 2, 3];
var found = arr.find(function(el) { return el > 2; });
它工作正常,但如果我在循环中循环数组,for in
方法将显示为值:
for (var prop in arr) { console.log(prop); }
// prints out:
// 1
// 2
// 3
// find
这将搞砸其他任何依赖于for in
显示值的人(尤其是在对象上)。更高版本的 javascript 在数组中内置了 .map 和 .filter 函数,但这些函数不会出现在for in
循环中。如何创建更多不会出现在for in
循环中的方法?