zoukankan      html  css  js  c++  java
  • 第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()来扩充作用域的最大好处,就是对象不需要与方法发生任何耦合关系,

  • 相关阅读:
    结对项目——四则运算
    关于结对编程的感想
    《诗词大闯关》调查表与调查结果分析
    我的软件工程课目标
    我的软件工程课目标
    软件工程课程建议
    结对编程(二)
    结对编程——四则运算
    结对编程
    《诗词大闯关》问卷调查心得与体会
  • 原文地址:https://www.cnblogs.com/jianchixuexu/p/12268281.html
Copyright © 2011-2022 走看看