我希望在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
循环中显示?