zoukankan      html  css  js  c++  java
  • JavaScript 函数

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>test</title>
    </head>
    <body>
        <script>
            /* 函数第一种声明 */
            var abc;
            abc = function (a, b) {
                alert(a + b);
            }
            abc(1, 3);
    
            /* 函数第二种声明 */
            var c = 5, d = 6;
            test(c, d);
            function test(c, d) {
                alert(c + d);
            }
    
            /* 在js的函数里面还可以定义函数(私有函数) */
            function testaaa() {
                var res = add(2, 2);
                function add(a, b) {
                    return a + b;
                }
                return res;
            }
            alert(testaaa());
    
            /* 匿名函数第一种用法 赋值给变量,赋值给对象的属性 */
            var abc;
            abc = function (a, b) {
                alert(a + b);
            }
            abc(1, 3);
    
            /* 匿名函数第二种用法 作为参数传入函数,类似回调函数 */
             function test(a, b, f) {
               return f(a, b);
            }
    
            function add(a, b) {
                return a + b;
            }
            alert(test(2, 3, function (a, b) {
                return a + b;
            }));
    
            /* 匿名函数第三种用法 作为命名空间,定义完后直接调用 */
            /* 匿名函数第一种调用方法 */
            !function () {
                function a()
                {
                    alert("我是a函数!");
                }
                function b()
                {
                }
                function c()
                {
    
                }
                a();
            }();
    
            /* 匿名函数第二种调用方法 */
            (function () {
                function a()
                {
                    alert("我是a函数!");
                }
                function b()
                {
                    alert("我是b函数!");
                }
                function c()
                {
    
                }
                b();
            })();
    
            /* 匿名函数第三种调用方法 */
            (function () {
                function a()
                {
                    alert("我是a函数!");
                }
                function b()
                {
                    alert("我是b函数!");
                }
                function c()
                {
                    alert("我是c函数!");
                }
                c();
            }());
            
            /* 匿名函数的传参 */
            !function (a, b) {
                alert(a + b);
            }(2, 4);
    
            /* 在外部间接调用私有属性和函数的第一种方法 */
             返回一个函数
             var md5 = function () {
                function a()
                {
                    alert("我是a函数!");
                }
                function b()
                {
                    alert("我是b函数!")
                }
                function c()
                {
                    alert("我是c函数!")
                }
                return a;
            }();
            md5();
    
            /* 返回多个接口 */
            var md5 = function () {
                function a()
                {
                    alert("我是a函数!");
                }
                function b()
                {
                    alert("我是b函数!")
                }
                function c()
                {
                    alert("我是c函数!")
                }
                return {
                    a : a,
                    b : b,
                    c : c
                };
            }();
            md5.a();
            md5.b();
    
            /* 在外部间接调用私有属性和函数的第二种方法 */
            var obj = {};
           !function () {
                function a()
                {
                    alert("我是a函数!");
                }
                function b()
                {
                    alert("我是b函数!")
                }
                function c()
                {
                    alert("我是c函数!")
                }
               obj.a = a;
               obj.b = b;
               obj.c = c;
            }();
           obj.a();
           obj.b();
    
            /* 在外部间接调用私有属性和函数的第三种方法(1) */
           !function () {
                function a()
                {
                    alert("我是a函数!");
                }
                function b()
                {
                    alert("我是b函数!")
                }
                function c()
                {
                    alert("我是c函数!")
                }
               window.a = a;
               window.b = b;
               window.c = c;
            }();
           a();
           c();
    
           /* 在外部间接调用私有属性和函数的第三种方法(2) */
           !function (w) {
                function a()
                {
                    alert("我是a函数!");
                }
                function b()
                {
                    alert("我是b函数!")
                }
                function c()
                {
                    alert("我是c函数!")
                }
               w.a = a;
               w.b = b;
               w.c = c;
            }(window);
           c();
    
           /* js当中没有函数重载 */
            /* js支持可变参数 */
            function test() {
                alert(arguments.length);
            }
            test(1, 2);
            function test() {
                alert(arguments[1]);
            }
            test(1, 3);
    
            // 在顶层代码引用this 就代表Window ,函数里的this,谁调用它,就代表谁
            var a = 100;
            alert(this.a);
    
            var a = 200;
            function test() {
                var a = 100;
                alert(this.a);
            }
            window.test();
    
            var x = 2000;
            var obj1 = {
                x : 1000,
                y : function () {
                    alert(this.x);
                }
            };
            var obj2 = {
                x : 3000,
                y : function () {
                    alert(this.x);
                }
            };
            alert(this.x);
            obj1.y();
            obj2.y();
    
            //  ECMAScript规范所有函数都包含两个非继承的方法,分别为call()和apply(),这两个函数都是在特定的作用域中调用函数,能改变函数的作用域,实际上是改变函数体内“this”的指代的对象。
            /* 函数也是对象,它也有属性和方法,最常用的方法是call 和 apply */
            function test(a, b) {
                alert(a + b);
                alert(this.x);
            }
            var obj1 = {
                x : 1000,
                y : function () {
                    alert(this.x);
                }
            };
            var obj2 = {
                x : 3000,
                y : function () {
                    alert(this.x);
                }
            };
            // call 方法有好几个参数,第一个是对象,剩下的都是传给这个函数的参数
            // test.call(obj1);
            test.call(obj2, "张三", "李四");
            // apply 只有两个参数,第一个是对象,第二个是数组
            test.apply(obj1, ["张三", "王五"]);
    
            // 闭包
            function test() {
                var a = 100;
                return function () {
                    return a;
                }
            }
            var abc = alert(test()());
        </script>
    </body>
    </html>

    需要注意的是 Javascript 里面没有函数重载。

  • 相关阅读:
    How To Scan QRCode For UWP (4)
    How To Crop Bitmap For UWP
    How To Scan QRCode For UWP (3)
    How To Scan QRCode For UWP (2)
    How To Scan QRCode For UWP (1)
    How to change windows applicatioin's position via Win32 API
    8 Ways to Become a Better Coder
    How to resize or create a thumbnail image from file stream on UWP
    C# winform压缩文件夹带进度条
    MS ACCESS MID函数
  • 原文地址:https://www.cnblogs.com/duxie/p/11703158.html
Copyright © 2011-2022 走看看