function delegateProperty(f) {
    return function() {
      if (!arguments.length) return f();
      f.apply(null, arguments);
      return self;
    };
  }
function delegateProperty(f) {
    return function() {
      if (!arguments.length) return f();
      f.apply(null, arguments);
      return self;
    };
  }
function delegateProperty ( f ) { return function ( ) { if ( ! arguments . length ) return f ( ) ; f . apply ( null , arguments ) ; return self ; } ; }
/*
Given a function, a new function is returned that invokes the given
function. The return value from the function is always the `self` object.
/ * Given a function a new function is returned that invokes the given function . The return value from the function is always the self object .