Nodejs Function Bind createDelegate(obj, args, appendArgs)

Here you can find the source of createDelegate(obj, args, appendArgs)

Method Source Code

Function.prototype.createDelegate = function(obj, args, appendArgs){
    var method = this;
    return function() {
        var callArgs = args || arguments;
        if(appendArgs === true){
            callArgs = Array.prototype.slice.call(arguments, 0);
            callArgs = callArgs.concat(args);
        }else if(typeof appendArgs == 'number'){
            callArgs = Array.prototype.slice.call(arguments, 0); // copy arguments first
            var applyArgs = [appendArgs, 0].concat(args); // create method call params
            Array.prototype.splice.apply(callArgs, applyArgs); // splice them in
        }/*from   w  w  w  . j a  v  a2  s  .co m*/
        return method.apply(obj || window, callArgs);
    };
};

Related

  1. bind( obj )
    Function.prototype.bind = function( obj ) {
      var slice = [].slice,
        args = slice.call(arguments, 1), 
        self = this, 
        nop = function () {}, 
        bound = function () {
          return self.apply( this instanceof nop ? this : ( obj || {} ), 
                    args.concat( slice.call(arguments) ) );  
        };
    ...
    
  2. bind(bind)
    Function.prototype.bind = function (bind) {
        var self = this;
        return function () {
            var args = Array.prototype.slice.call(arguments);
            return self.apply(bind || null, args);
        };
    };
    
  3. rebind(n)
    Function.prototype.rebind = function (n) {
        var me = this;
        return function () {
            var res = me.apply();
            var f = res && res[n];
            if(typeof f !== 'function') throw 'routed property was not a function.';
            f.apply(null, arguments);
        };
    };
    ...
    
  4. bind(scope)
    Function.prototype.bind = function(scope) {
      var _function = this;
      return function() {
        return _function.apply(scope, arguments);
    };
    
  5. pass(args, bind)
    Function.prototype.pass = function(args, bind){
      var self = this;
      if (args != null) args = Array.from(args);
      return function(){
        return self.apply(bind, args || arguments);
      };
    };
    Element.prototype.hasClass = function(className){
      return this.className.indexOf(className) != -1;
    ...
    
  6. Map(compareFunction)
    function Map(compareFunction) {
        this.keyArray = [];
        this.valArray = [];
        this.compareFunction = compareFunction;
    Map.prototype.put = function(key, val) {
        var elementIndex = this.findKey(key);
        if (elementIndex === (-1)) {
            this.keyArray.push(key);
    ...