js中的即时函数

<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>


























   

你可能感兴趣的:(js中的即时函数)