code: function doBind(func) {
          /*jshint validthis:true*/
          var args = toArray(arguments),
              bound;
  
          if (this && !func[$wrapped] && this.$static && this.$static[$class]) {
              func = wrapMethod(null, func, this.$self || this.$static);
          }
  
          args.splice(1, 0, this);
          bound = bind.apply(func, args);
  
          return bound;
      }
docs: Bind.
  Works for anonymous functions also.
  
  @param {Function} func   The function to be bound
  @param {...mixed} [args] The arguments to also be bound
  
  @return {Function} The bound function