第二段代码有哪些优势?
JScript code
function oDemo()
{
function pr()
{
for(var i=0;i<10;i++){}
return i; //返回的i是10
}
return i; //这里的i是未定义的
}
alert(oDemo()); //报错i未定义
JScript code
function oDemo()
{
(function()
{
for(var i=0;i<10;i++){}
return i; //返回的i是10
})()
return i; //这里的i是未定义的
}
alert(oDemo()); //报错i未定义
上面两段代码都可以达到私有化变量的效果,
那么,第二段代码的优势在哪?
求指点。。。。
------解决方案-------------------- 没什么实质的差别,对oDemo这个函数来说结果都一样,但是要知道下面这个是 匿名函数的使用
(function() {
......
})()//匿名函数,匿名函数就是没有实际名字的函数.
(function(){
alert(333);
})(); //立即执行这个 匿名函数中的代码
运行下这个就清楚了
alert(typeof function(){});// "function"
------解决方案--------------------JS匿名函数的理解 参考:http://blog.csdn.net/zhaozheng7758/article/details/6168203
------解决方案--------------------function oDemo()
{
function pr()
{
for(var i=0;i<10;i++){}
return i; //返回的i是10
}
pr() //加了这句 就和你第二个一样的效果 只不过第二个是用的匿名函数而已
return i; //这里的i是未定义的
}
alert(oDemo()); //报错i未定义