• 第77天python Javascript function学习


    由于函数是对象,因此函数名实际上也是一个指向函数对象的指针

    1、函数的声明方式:

    普通的函数声明

    function box(num1.num2){

      return num1+num2;

    }

    使用变量初始化函数

    var box=function(num1,num2){

      return num1+num2;

    }

    2、作为值的函数:

    ECMAScript 中的函数名本身就是变量,所以函数也可以作为值来使用,也就是说,不仅可以像传递参数一样把一个函数传递给另一个函数,而且可以将一个函数作为另一个函数的结果放回

    function box(sumFunction,num){

      return sumFunction(num);

    }

    function sum(num){

      return num +10;

    }

    传递函数到另一个函数里

    var result=box(sum,10);

    3、函数的内部属性:

     在函数内部,有两个特殊的对象,arguments和this。arguments是一个类数组对象,包含着传入函数中的所有参数,主要用途是保存函数参数。但是这个对象还有一个名字叫callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数

    function box(num){

      if(num<=1){

        return 1;

      }else{  return num*box(num-1);

    }

    }

    对于阶乘函数一般要用到递归,所以函数内部一定会调用自身,如果函数名不改变是没有问题的,但是一旦改变函数名,内部的自身调用需要逐一修改,为了解决这个问题,我们引入使用arguments来代替。

    function box(num){

      if(num<=1){

        return 1;

      }else{  return num*arguments.callee(num-1);

    }

    }

    函数内部另一个特殊对象是this,其行为与java 和C#中的this大致相似,换句话讲this引用的是函数数据以执行操作的对象,或者说函数调用语句所处的那个作用域,ps:当在全局作用域中调用函数时,this对象引用的就是windoas

    4、函数的属性:

     ECMAScript 中的函数也是对象,因此函数也是有属性和方法,每个函数都包含两个属性;length和prototypc。其中,length属性表示函数希望接收的命名参数的个数

    prototype下的两个方法:apply和call

    使用call()和apply()来扩充作用域的最大好处,就是对象不需要与方法发生任何耦合关系,

  • 相关阅读:
    TestNg线程池配置、执行次数配置、超时配置
    testng.xml文件结构组成及节点属性说明
    ReportNg 测试报告的定制修改【转】
    TestNg依赖详解(三)------灵活的文件配置依赖
    TestNg依赖高级用法之强制依赖与顺序依赖------TestNg依赖详解(二)
    TestNg依赖配置基础用法(单一方法依赖)------TestNg依赖详解(一)
    compareTo,Comparator和equals
    HashMap源码解析
    redis的相关知识
    IO模型
  • 原文地址:https://www.cnblogs.com/jianchixuexu/p/12268281.html
Copyright © 2020-2023  润新知