透析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)