<html> <head> <script> window.onload = function(){ //即时函数1 (function(){ alert('watch out 1!'); }()); //即时函数2 (function(){ alert('watch out 2!'); })(); //非即时函数 var watch = function(){ alert('watch out!'); }; watch(); //示例 (function () { var days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], today = new Date(); msg = 'Today is ' + days[today.getDay()] + ',' +today.getDate(); alert(msg); })();//输出" Today is Fri, 21" //带参数的即时函数 (function (who, when){ console.log("I met" + who +" on " + when); }("Joe Black", new Date())); //访问全局变量 (function (global){ //通过‘global’访问全局变量 }(this)); //即时函数的返回值 //三种形式均可,不要与var result = function(){};混淆 var result = (function () { return 2 + 2; })(); console.log(result); result = function () { return 2 + 3; }(); console.log(result); result = (function () { return 2 + 4; }()); console.log(result); //用即时函数包装对象 var o = { message : (function(){ var who = "me", what = "call"; return what + " " + who; }()), getMsg : function () { return this.message; } }; //用法 console.log(o.getMsg());//输出"call me" console.log(o.message);//输出"call me" //即时函数应用,初始化 ({ //在这里可以定义设定值 //又名配置常熟 maxwidth : 600, maxheight : 400, //还可以定义一些实用的方法 gimmeMax: function (){ return this.maxwidth + "x" + this.maxheight; }, //初始化 init: function () { console.log(this.gimmeMax()); //更多初始化任务 } }).init(); } </script> </head> </html>