Extending objects without touching prototypes

Just experimental ...

by rpflorence

HTML

<script src="https://gist.github.com/raw/780728/5af3b4937485c493703e8b64d25baa1b8391a813/natives.js"></script>

JavaScript

_.define('array', 'sum', function(){
  var sum = 0;
  for (var i = this.length - 1; i >= 0; i--){
    sum += parseFloat(this[i]);
  };
  return _(sum);
});

_.define('number', 'round', function(precision){
  precision = Math.pow(10, precision || 0).toFixed(precision < 0 ? -precision : 0);
  return _(Math.round(this * precision) / precision);
});

var value = _([1, 1, 1.5]).sum().round().get();

document.write('<p>' + value + '</p>');