EXT在页面加载完后掉用函数显示窗口 function showWindow(){
var win = new Ext.Window({
width:400,
height:500,
title:"My Ext Window"
});
win.show();
}

Ext.onReady(showWindow);  为什么onReady调用showWindow没有括号,为什么下面就不行  Ext.onReady(showWindow());以前一般用下面的方法调用 Ext.onReady(function(){
showWindow();
}); 
这里为什么又有括号?

解决方案 »

  1.   

    因为Ext.onReady中的参数是要执行的函数 其在函数内部会执行该函数 所以Ext.onReady(函数名) 或者 Ext.onReady(function(){  函数名();  })
      

  2.   

     onDocumentReady : function(fn, scope, options){
                if(docReadyState){ 
                    docReadyEvent.addListener(fn, scope, options);
                    docReadyEvent.fire();
                    docReadyEvent.clearListeners();
                    return;
                }
                if(!docReadyEvent){
                    initDocReady();
                }
                docReadyEvent.addListener(fn, scope, options);
            },这是他的源码 相关函数体在这就不给楼主展现了 你可以在Ext-all.js中看 fn就是你的入口函数 他是一个函数名 而不是函数()
      

  3.   

     Ext.onReady(function(){
                    showWindow();
                }); 这样写 里边的function(){ showWindow() } 这是一个匿名函数 与单纯的showWindow等价不知我这3楼的回复可让楼主满意否?
      

  4.   


          /**
             * Adds new listener to be executed when all required scripts are fully loaded.
             *
             * @param {Function} fn The function callback to be executed
             * @param {Object} scope The execution scope (`this`) of the callback function
             * @param {Boolean} withDomReady Whether or not to wait for document dom ready as well
             */
            onReady: function(fn, scope, withDomReady, options) {
                var oldFn;            if (withDomReady !== false && Ext.onDocumentReady) {
                    oldFn = fn;                fn = function() {
                        Ext.onDocumentReady(oldFn, scope, options);
                    };
                }            if (!this.isLoading) {
                    fn.call(scope);
                }
                else {
                    this.readyListeners.push({
                        fn: fn,
                        scope: scope
                    });
                }
            },这是extjs 4.0.2a的onReady源码。里面写得很清楚了。
    param {Function} fn The function callback to be executed(fn 一个能被执行的回调函数)。
    注意了,是能被执行的,而不已经执行了的。楼主你的是已经执行了的。
      

  5.   

    看了两位的回答,明白了,如果Ext.onReady(showWindow());则我把整个函数传进去了,会报错误!