zoukankan      html  css  js  c++  java
  • 函数调用的方式

          // 1.0 一般形式的函数调用
            // 在默认情况下,函数是不会执行的,使用小括号可以激活并执行函数,
            // 可以传递零个或多个参数,参数之间通过逗号分隔
            // 示例1:
            function f(x,y) {  //定义函数
                return x * y;  //返回值
            }
            console.log(f(f(5,6), f(7,8)));  //返回1680。重复调用函数
            // 示例2:
            function f1(x,y) {  //定义函数
                return function () {  //返回函数类型的数据
                    return x * y;
                }
            }
            console.log(f1(7,8) ());  //返回56,反复调用函数
    
            // 2.0作为对象的方法调用
            // 当一个函数被设置为函数的属性值时,称之为方法。使用点语法可以调用一个方法
            var obj = {
                value : 0,
                increment : function (inc) {   
                    this.value += typeof inc === 'number' ? inc :1; //在increment方法中可以使用this访问obj这个对象
                }
            }
            obj.increment();//使用点语法可以调用对象obj的方法
            console.log(obj.value);  //1
            obj.increment(2);
            console.log(obj.value);  //2
    
    
            // 3.0使用call和apply动态调用
            // call和apply是Function的原型方法,它们能够将特定函数当做一个方法绑定到指定对象上,并进行调用
                // 使用方法如下:
                    // function.call(thisobj,args...)
                    // function.apply(thisobj,[args])
                    // function表示要调用的函数,
                    // 参数thisobj表示绑定对象,即this指代的对象
                    // 参数args表示要传递给被调用函数的参数
            function f2(x,y) {  //定义求和函数
                return x + y;
            }
            console.log(f2.call (null, 3, 4));  //返回7
            console.log(f2.apply(null, [3,4]));  //返回7
    
            // 示例1
            function max() {  //求最大值函数
                var m = Number.NEGATIVE_INFINITY;  //声明一个负无穷大的数值
                for (var i = 0; i < arguments.length; i ++) {  //遍历所有实参
                    if (arguments[i] > m)  //如果实参值大于变量m
                    m = arguments[i];  //则把该实参值赋值给m
                }
                return m;  //返回最大值
            }
            var a = [23,45,2,46,62,45,56,63];  //声明并初始化数组
            var m = max.apply(Object, a);  //动态调用max,绑定为Object的方法
            console.log(m);  //返回63
    
            // 示例2
            function f() {
                console.log("函数f");
            }
            var obj = {};
            f.call(obj);  //把函数f绑定为obj对象的方法
            console.log(obj.f());  //再次调用该方法,则返回编译错误
    
            // 4.0new命令间接调用
            // 使用new命令可以实例化对象,这是它的主要功能,但是在创建对象的过程中会激活并运行函数。
            // 因此使用new命令可以间接调用函数
  • 相关阅读:
    sso单点登录
    mysql java写入时间少14小时
    mysql 时间
    mysql中timestamp的自动生成与更新
    centos7下用命令安装node&pm2
    腾讯蓝鲸资源分配
    Centos7 安装谷歌浏览器
    Ubuntu安装Apache 2.4.7常见问题解答
    Ubuntu常见服务启停
    LVM 'Can’t open /dev/sdb1 exclusively. Mounted filesystem?' Problem
  • 原文地址:https://www.cnblogs.com/zhuMother/p/12986073.html
Copyright © 2011-2022 走看看