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>