backbone-baseview.js
function (fnName, args) {
            var func;
            var ancestor = this;
            var isFunc = isFunction(fnName);
            while (ancestor.parentView) {
                ancestor = ancestor.parentView;
                if (ancestor) {
                    func = isFunc ? fnName : ancestor[fnName];
                    func.apply(ancestor, args);
                }
            }
            return this;
        }
function (fnName, args) {
            var func;
            var ancestor = this;
            var isFunc = isFunction(fnName);
            while (ancestor.parentView) {
                ancestor = ancestor.parentView;
                if (ancestor) {
                    func = isFunc ? fnName : ancestor[fnName];
                    func.apply(ancestor, args);
                }
            }
            return this;
        }
function ( fnName , args ) { var func ; var ancestor = this ; var isFunc = isFunction ( fnName ) ; while ( ancestor . parentView ) { ancestor = ancestor . parentView ; if ( ancestor ) { func = isFunc ? fnName : ancestor [ fnName ] ; func . apply ( ancestor , args ) ; } } return this ; }
Invoke a function or method on ancestors
@memberOf Backbone.BaseView#
@param {Function|String} fnName
@param {mixed[]} [args]
An array of arguments to pass to
the invocation
@return {Backbone.BaseView}
Invoke a function or method on ancestors