关于Javascript语法的一点疑问

dmzhangsir 发布于 2012/07/06 08:18
阅读 163
收藏 0

	(function(window){ "use strict";

	window.ig = {
		gooo: function(){
			alert('function gooo!');
		},
	};
	})(window); 
	
	ig.gooo();

请问 (function(window){...})(window) 是什么意思?

加载中
0
高雷
高雷

首先 明白小括号的作用,  (function(window){...}),把一个函数括起来(括成一个整体)是不是还是一个函数呢?

你可以测试 alert( typeof (function(window){})); //结果 function

至此,你可能隐隐明白,既然是函数,后面 () 是不是就是调用呢?

哈,测试一下

既然如些,括号里是不是 就可以传数呢? 

就像jQuery的写法 (function($){//$是参数哦 } )(jQuery);//jQuery是要传的参数

0
韩启朋
韩启朋
立即调用匿名函数,并将全局变量 window 做为参数传过去。
0
绝对零度
绝对零度
这样的好处就是在这个匿名函数中定义的变量是局部变量,作用域限制在这个函数中了,不会去其它JS库的变量或者函数发生命名冲突。
0
dmzhangsir
dmzhangsir

引用来自“高雷”的答案

三个都说的很好,明白了!
高雷
高雷
那就取个最佳答案,把问题结束掉吧
返回顶部
顶部