function(key, fn, scope) {
        var keyCode, shift, ctrl, alt;
        if (Ext.isObject(key) && !Ext.isArray(key)) {
            keyCode = key.key;
            shift = key.shift;
            ctrl = key.ctrl;
            alt = key.alt;
        } else {
            keyCode = key;
        }
        this.addBinding({
            key: keyCode,
            shift: shift,
            ctrl: ctrl,
            alt: alt,
            fn: fn,
            scope: scope
        });
    }
function(key, fn, scope) {
        var keyCode, shift, ctrl, alt;
        if (Ext.isObject(key) && !Ext.isArray(key)) {
            keyCode = key.key;
            shift = key.shift;
            ctrl = key.ctrl;
            alt = key.alt;
        } else {
            keyCode = key;
        }
        this.addBinding({
            key: keyCode,
            shift: shift,
            ctrl: ctrl,
            alt: alt,
            fn: fn,
            scope: scope
        });
    }
function ( key , fn , scope ) { var keyCode , shift , ctrl , alt ; if ( Ext . isObject ( key ) && ! Ext . isArray ( key ) ) { keyCode = key . key ; shift = key . shift ; ctrl = key . ctrl ; alt = key . alt ; } else { keyCode = key ; } this . addBinding ( { key : keyCode , shift : shift , ctrl : ctrl , alt : alt , fn : fn , scope : scope } ) ; }
Shorthand for adding a single key listener.

@param {Number/Number[]/Object} key Either the numeric key code, array of key codes or an object with the
following options: `{key: (number or array), shift: (true/false), ctrl: (true/false), alt: (true/false)}`
@param {Function} fn The function to call
@param {Object} [scope] The scope (`this` reference) in which the function is executed.
Defaults to the browser window.
Shorthand for adding a single key listener .