tinymce.full.js
function (name, callback) {
        var self = this;

        function resolveCallbackName(name) {
          var callback, scope;

          if (typeof name != 'string') {
            return name;
          }

          return function (e) {
            if (!callback) {
              self.parentsAndSelf().each(function (ctrl) {
                var callbacks = ctrl.settings.callbacks;

                if (callbacks && (callback = callbacks[name])) {
                  scope = ctrl;
                  return false;
                }
              });
            }

            if (!callback) {
              e.action = name;
              this.fire('execute', e);
              return;
            }

            return callback.call(scope, e);
          };
        }

        getEventDispatcher(self).on(name, resolveCallbackName(callback));

        return self;
      }
function (name, callback) {
        var self = this;

        function resolveCallbackName(name) {
          var callback, scope;

          if (typeof name != 'string') {
            return name;
          }

          return function (e) {
            if (!callback) {
              self.parentsAndSelf().each(function (ctrl) {
                var callbacks = ctrl.settings.callbacks;

                if (callbacks && (callback = callbacks[name])) {
                  scope = ctrl;
                  return false;
                }
              });
            }

            if (!callback) {
              e.action = name;
              this.fire('execute', e);
              return;
            }

            return callback.call(scope, e);
          };
        }

        getEventDispatcher(self).on(name, resolveCallbackName(callback));

        return self;
      }
function ( name , callback ) { var self = this ; function resolveCallbackName ( name ) { var callback , scope ; if ( typeof name != 'string' ) { return name ; } return function ( e ) { if ( ! callback ) { self . parentsAndSelf ( ) . each ( function ( ctrl ) { var callbacks = ctrl . settings . callbacks ; if ( callbacks && ( callback = callbacks [ name ] ) ) { scope = ctrl ; return false ; } } ) ; } if ( ! callback ) { e . action = name ; this . fire ( 'execute' , e ) ; return ; } return callback . call ( scope , e ) ; } ; } getEventDispatcher ( self ) . on ( name , resolveCallbackName ( callback ) ) ; return self ; }
Binds a callback to the specified event. This event can both be
native browser events like "click" or custom ones like PostRender.

The callback function will be passed a DOM event like object that enables yout do stop propagation.

@method on
@param {String} name Name of the event to bind. For example "click".
@param {String/function} callback Callback function to execute ones the event occurs.
@return {tinymce.ui.Control} Current control object.
Binds a callback to the specified event . This event can both be native browser events like click or custom ones like PostRender .