JS:请教关于块级作用相关
第一问:
(functoin(){
内容
})(test)
这里的test是函数名还是变量,需要在哪儿定义了才能用?
第二问:
(function(args){
    var IS = {};
    IS.init = function(){alert(args.id[1]);};     
})()
调用的时候用<script>IS.init(id:'1',name:'user');</script>,提示出错呢?
------解决方案--------------------
(function(a){
	alert(a);
})(4);
所以第一问应该是变量  是传入的参数
(function(args){
 var IS = {};
 IS.init = function(){alert(args.id[1]);};   
})()
这时匿名函数在定义时就调用了 IS是局部变量 所以在外部不可访问
(function(){
 if(!window['IS']){
	window['IS']={};  
 }
 function init(args){
	  alert(args.id);
 }
 window['IS']['init']=init;
})()
var a={id:'1',name:'user'}
IS.init(a);
改成这样试试
------解决方案--------------------
test是什么根据里面的内容而定,一般是一个对象,window,document
id:'1',name:'user'不是一个完整的数据类型,应该这样
<script>
(function(w){
 w.IS = {};
 IS.init = function(args){alert(args.id);alert(args.name);};   
})(window)
</script>
<script>IS.init({id:'1',name:'user'});</script>