/** * 第二部分:能在定义时就能执行的方法的写法 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();