Странности не с ptototype, а с изучением особенностей языка
Расширять прототип встроенных классов (Array, Object, String etc.) считается плохой практикой (говнокодом), но если уж очень надо, то надо устанавливать для новых свойств объекта прототипа флаг enumerable = false
Object.defineProperty(Array.prototype, 'UContainsCustom ', {
value: function(closure) {
var i, pLen = this.length;
for (i = 0; i < pLen; i++) {
if (closure(this[i])) return i;
}
return -1;
}
});
https://developer.mozilla.org/ru/docs/Web/JavaScri...