zoukankan      html  css  js  c++  java
  • js 立即调用函数

            function makeCounter() {  //不能立即执行
                // 只能在makeCounter内部访问i
                var i = 0;
    
                return function () {
                    console.log(++i);
                };
            }
            var counter = makeCounter(); //对象1
            counter(); // logs: 1 //立刻执行
            counter(); // logs: 2
            var counter2 = makeCounter(); //对象2
            counter2(); // logs: 1
            counter2(); // logs: 2
    
            var foo = function () { console.log("/* code */") }; //直接运行不了
            var foo = function () { console.log("/* code */") }();//直接运行
    
    
            function ff(){ /* code */ }(); // SyntaxError: Unexpected token  出错
            function ff() { console.log("/* code */") } (1); // 式子无异常,无输出
            function foo() { console.log("/* code */")};
                    (1);  //无报错  无输出
    
            (function () { console.log("/* code */") }()); // 推荐使用这个             直接输出
            (function () { console.log("/* code */") })(); // 但是这个也是可以用的     直接输出
    
            var i = function () { console.log("/* code */") }(); //直接输出
            true && function () { console.log("/* code */") }(); //直接输出
            0, function () { console.log("/* code */") }();  //直接输出
    
            !function () { console.log("/* code */") }();//直接输出
            ~function () { console.log("/* code */") }();//直接输出
            -function () { console.log("/* code */") }();//直接输出
            +function () { console.log("/* code */") }();//直接输出
    
            new function () { console.log("/* code */") };//直接输出
            new function () { console.log("/* code */") }();//直接输出
            
            function ff() {
                new function () { console.log("/* code */") };
                !function () { console.log("/* code */") }();
            }
            ff();  直接输出
      !function () { console.log("/* code */1") }(console.log("/* code */2"));//直接输出  先执行2 在执行1
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="jquery-1.10.2.js"></script>
    <script>
       function test() {
           (function($) { console.log("22222")})(jQuery);//输出 22222
           (function($) { console.log($)})(jQuery); //输出
           // jQuery = function( selector, context ) {
           //// The jQuery object is actually just the init constructor 'enhanced'
          // return new jQuery.fn.init( selector, context, rootjQuery );
       //},
           var T=1;
           (function(T) { console.log("11111")})(T); //输出111
           (function($) { console.log("11112")})($); //输出111
       }
    </script>
    </head>
    <body>
    <input type="button" value="测试执行效果" onclick="test()">
    </body>
    </html>

    var xhr1 = function () {
    if (typeof XMLHttpRequest != 'undefined') {
    return new XMLHttpRequest();
    }
    }();

    var xhr2 = (function () {
    if (typeof XMLHttpRequest != 'undefined') {
    return new XMLHttpRequest();
    }
    })();

  • 相关阅读:
    C++成员变量与函数内存分配
    Sqlite ContentProvider Loader 上下文 对话框
    好书好人生--读书的步骤
    小智慧40
    流媒体开发之-直播界面切换电视台频道
    HDU 4617Weapon(两条异面直线的距离)
    BON取代半岛电视,美国人要“换口味”了吗?
    【Todo】Lucene系统学习
    Zookeeper学习 & Paxos
    C++中的虚继承 & 重载隐藏覆盖的讨论
  • 原文地址:https://www.cnblogs.com/enych/p/7930258.html
Copyright © 2011-2022 走看看