Я хочу определить вспомогательные методы на 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
?