读书人

第二段代码有哪些优势?解决方案

发布时间: 2012-03-21 13:33:15 作者: rapoo

第二段代码有哪些优势?

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未定义

读书人网 >JavaScript

热点推荐