Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="How to integrate utility functions in your objects" />
<script src="http://cdnjs.cloudflare.com/ajax/libs/lodash.js/1.2.1/lodash.min.js"></script>
<meta charset=utf-8 />
<title>Implement utility functions in your object</title>
</head>
<body>
</body>
</html>
 
  
var ExampleObject = function( array ) {
   this.array = array; 
};
// the methods we want to implement
// in our object
var utilityMethods = [ 'indexOf', 'filter' ],
    slice          = [].slice;
// iterate over the wished methods
_.each( utilityMethods, function( method ) {
  ExampleObject.prototype[ method ] = function() {
    var args = slice.call( arguments );
    
    args.unshift( this.array );
    
    return _[ method ].apply( _, args );
  };
});
// create the new object
var example = new ExampleObject( [ 5, 4, 3, 2, 1 ] );
// proof that indexOf works
console.log( example.indexOf( 2 ) );
// proof that filter workds
console.log(
  example.filter( function( value ) {
    return value % 2;
  } )
);
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
stefanjudispro
0viewers