透析Extjs的Ext.js源码(二)能在定义时就能执行的方法的写法 function(){...}

/**  
 * 第二部分:能在定义时就能执行的方法的写法 function(){...}();  
 */  
/**  
 * 一、普通的方法的定义与执行  
 */  
// 1-1、普通的方法定义,不带返回值的情况   
fun = function() {   
    alert("执行");   
};   
// 1-2、普通的方法执行,不带返回值的情况   
// fun();// 输出结果:执行   
  
// 2-1、普通的方法定义,带返回值,且返回值是个字符串的情况   
fun = function() {   
    alert("执行");   
    return "返回的是字符串";   
}   
// 2-2、普通的方法执行,带返回值,且返回值是个字符串的情况   
// fun();// 输出结果:执行   
// 2-3、普通的方法执行,带返回值,且返回值是个字符串的情况,并将返回值输出   
// alert(fun());// 输出结果:执行,返回的是字符串,(分别是两次警告框形式出现),原因是,先执行fun(),然后会带回返回的字符串,再通过alert输出   
// alert(typeof fun());// 输出结果:执行,string   
  
// 3-1、普通的方法定义,带返回值,且返回值是个object的情况   
fun = function() {   
    alert("执行");   
    return new Date();   
}   
// 3-2、普通的方法执行,带返回值,且返回值是个object的情况   
// fun();// 输出结果:执行   
// 3-3、普通的方法执行,带返回值,且返回值是个object的情况,并将返回值输出   
// alert(fun());// 输出结果:执行,Wed May 14 16:25:32 UTC+0800 2008   
// 3-4、普通的方法执行,带返回值,且返回值是个object的情况,并将返回值类型输出   
// alert(typeof fun());// 输出结果:执行,object   
  
// 4-1、普通的方法执行,带返回值,且返回值是个function的情况   
fun = function() {   
    alert("执行");   
    return function() {   
        alert("返回类型是个方法");   
    };   
}   
// 4-2、普通的方法执行,带返回值,且返回值是个function的情况   
// fun();// 输出结果:执行   
// 4-3、因为fun()执行后返回的是个function,所以根据这个返回的function的参数情况(比如参数的个数和类型)再执行一次返回的function,   
// 因为此处这个返回的function是不需要参数的,所以就可以直接用()来执行   
// fun()();// 输出结果:执行,返回类型是个方法   
// 3-4、普通的方法执行,带返回值,且返回值是个object的情况,并将返回值类型输出   
// alert(typeof fun());// 输出结果:执行,function   
  
/**  
 * 定义时就能执行  
 */  
    
fun = function(){   
    alert("执行");   
}();   
//alert(fun);   
  
fun = function(){   
    alert("执行");   
    return "返回的是字符串";// 返回的是个字符串   
}();   
//alert(fun)   
  
  
fun = function(){   
    alert("执行");   
    return new Date();// 返回的是个object   
}();   
alert(fun);   
  
  
fun = function(){   
    alert("执行");   
    return function(){   
        alert("返回类型是个方法");   
    }// 返回的是个方法   
}();   
fun(); 

你可能感兴趣的:(ext)