js中的即时函数

<pre name="code" class="html"><pre name="code" class="html"><pre name="code" class="html"><pre name="code" class="html"><pre name="code" class="html"><pre name="code" class="html"><html>  
    <head>  
        <script>  
            window.onload = function(){  
                //即时函数1  
                (function(){  
                    alert('watch out  1!');  
                }());  
                //即时函数2  
                (function(){  
                    alert('watch out  2!');  
                })();  
  
  
                //非即时函数  
                var watch = function(){  
                    alert('watch out!');  
                };  
                watch();  
  
                //示例  
                (function () {  
                    var days = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],  
                        today = new Date();  
                        msg = 'Today is ' + days[today.getDay()] + ',' +today.getDate();  
                        alert(msg);  
                })();//输出" Today is Fri, 21"  
  
                //带参数的即时函数  
                (function (who, when){  
                    console.log("I met" + who +" on " + when);  
                }("Joe Black", new Date()));  
  
                //访问全局变量  
                (function (global){  
                    //通过‘global’访问全局变量  
                }(this));  
  
                //即时函数的返回值  
                //三种形式均可,不要与var result = function(){};混淆  
                var result = (function () {  
                    return 2 + 2;  
                })();  
                console.log(result);  
                result = function () {  
                    return 2 + 3;  
                }();  
                console.log(result);  
                result = (function () {  
                    return 2 + 4;  
                }());  
                console.log(result);  
  
  
                //用即时函数包装对象  
                var o = {  
                    message : (function(){  
                        var who = "me",  
                            what = "call";  
                            return what + " " + who;  
                    }()),  
                    getMsg : function () {  
                        return this.message;  
                    }  
                };  
                //用法  
                console.log(o.getMsg());//输出"call me"  
                console.log(o.message);//输出"call me"  
  
  
  
                //即时函数应用,初始化  
                ({  
                    //在这里可以定义设定值  
                    //又名配置常熟  
                    maxwidth : 600,  
                    maxheight : 400,  
  
                    //还可以定义一些实用的方法  
                    gimmeMax: function (){  
                        return this.maxwidth + "x" + this.maxheight;  
                    },  
                    //初始化  
                    init: function () {  
                        console.log(this.gimmeMax());  
                        //更多初始化任务  
                    }  
                }).init();  
            }  
        </script>  
    </head>  
</html></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
<pre></pre>  
  
</pre></pre></pre></pre></pre>

转帖评论   即时函数1和即时函数2有什么区别呢?


即时函数1是声明一个函数,并立即执行它,最外层的括号令它成为一个独立的作用域沙箱

而即时函数2是声明一个不立即执行的函数,将其放置于沙箱中,并立即去执行该沙箱中的代码


转载于:https://my.oschina.net/122612475/blog/287637

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值