读书人

JS:请问关于块级作用相关

发布时间: 2012-09-18 16:21:42 作者: rapoo

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>

读书人网 >JavaScript

热点推荐