zoukankan      html  css  js  c++  java
  • javaScript的function

    一、函数的声明方式

    1、普通的函数声明

    function box(num1,num2){
        return num1+num2;
    }

    2、使用变量初始化函数

    var box=function(num1,num2){
        return num1+num2;
    }

    3、使用Function构造函数

    var box=new Function("num1","num2","return num1+num2");

    第三种不推荐,因为这种语法导致解析两次代码(第一次解析常规ECMAScript代码,第二次解析传入构造函数中的字符串)
    ,从而影响性能,但我们可以通过这种语法来理解,函数是对象,函数名是指针的概念

    二、作为值的函数,函数可以传递函数

    1、函数的返回值可以来传递

        function box(sum, num) {
            return sum + num;
        }
    
        function sum(num) {
            return num + 10;
        }
        var result = box(sum(10), 10); //这里传递的是函数的返回值,和普通变量没区别
        alert(result);//输出30

    2、把函数本身作为参数来传递,而不是作为结果

        function box(sum, num) {
            return sum(num);
        }
    
        function sum(num) {
            return num + 10;
        }
        var result = box(sum, 10) //这里sum是函数,当做参数传递到另外一个函数里,而不是返回值
        alert(result); //20 

    三、函数内部属性

    1、arguments类数组对象,包含了传入函数中所有参数,这个对象还有一个callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数

        function box(num) {
            if (num <= 1) {
                console.log("if" + num);
                return 1;
            } else {
                console.log("else" + num);
                //return num * box(num - 1);
                return num*arguments.callee(num-1);
            }
        }
        console.log(box(5));//120 5*4*3*2*1

    以上是一个阶乘或者是递归,box调用了自己,如果很多自我调用修改也许会麻烦,所以用到arguments.callee来调用自己

  • 相关阅读:
    echarts 柱状图移除圆角
    echarts 图例显示到右边
    css图片文字一排
    linux磁盘分区、挂载、查看
    mysql的sql筛选排重最大值并修改其属性
    Java调用Linux下的shell命令并将结果以流的形式返回
    SHELL脚本中执行SQL语句操作MYSQL的5种方法
    在 Mac 上使用 `sed` 命令的几个坑
    Linux sed命令实现替换文本内容
    docker ps -a
  • 原文地址:https://www.cnblogs.com/lgxlsm/p/5755267.html
Copyright © 2011-2022 走看看