Voronar,
Вообще, ящетаю, "Безопасное" расширение нативных объектов, могло бы выглядеть вот так
Object.prototype._=function(f){return f(this)}
show=function(x){console.log(x)}
sum=function(x){console.log(x+x)}
;({a: 1})._(show) // { a: 1 }
;1.._(sum) // 2
Расширяем одной функцией, а затем через каллбэк дергаем как хочем. Одну ф-цию задокументировать и запомнить -- не проблема. И не надо никаких сраных костылей enumerable и пр.