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来调用自己

  • 相关阅读:
    加油站
    UIScrollView控件实现图片轮播
    键值编码 KVC
    键值观察 KVO
    弹出视图集合
    关于Page翻页效果, PageViewConrtoller
    Event Handling Guide for iOS--事件驱动指南
    远程控制
    耳机线控
    ASI框架的使用
  • 原文地址:https://www.cnblogs.com/lgxlsm/p/5755267.html
Copyright © 2011-2022 走看看