zoukankan      html  css  js  c++  java
  • 重操JS旧业第五弹:函数

    函数在任何编程语言中起着非常重要的位置,因为他是功能的最小单元,在js中函数是一种类型 Function

    1 申明与定义

    显示声明:function cc(){};函数名其实是函数的一个指针,函数名某种意义上也就是function类型的一个变量,对于显示什么的函数,不管函数在文档什么位置都糊被js引擎预先加载到编译环境栈中;

    也就是申明自动提前

    函数表达式:var fun=function(){};对于表达式函数,起本质上变量指向了一个函数,但是呢,这个函数申明不会被提前加载到js引擎中提前编译

    2 函数成员

    this:this在js中是一个灵活多变的玩意儿,它指向的函数运行域对象,说起这个域对象其实是个比较难理解的东西;要理解this指向谁,只需明白谁调用了该函数,this就指向谁

    argument:该对象存储了函数的所有形式参数,argument.callee该函数指向了函数本身,这个属性往往用于函数递归调用;

    function sum(m){

      if(m>0){

        return m+argument.callee(m-1);

      }

      else{

        return 1;

      }

    }

    prototype:函数的原型对象,是函数的一个非常非常重要的成员

    3 函数属性和方法

    length:函数参数的个数

    call:调用方式,var fun=sum;fun.call(this,*,*),这里第一个参数均为上下文this对象,在这里可以改变this的指向,对于函数的形式参数这里要求一一列举出来

    apply:与call不同的是形式参数不用一一列举出来,如 func.apply(this,func.argument)

    bind:bind与call和apply不同的是bind将函数又变成一个变量,且可以改变函数的this,如sum.bind(o);

    4 函数的特性

    函数不具有重载性

    函数可以作为变量:作为函数的返回值,函数的形式参数;

    js中函数作为面向对象程序设计具有非常重要的基础,而函数也是最为复杂的类型之一,其中函数嵌套,闭包,面向对象,继承,多态等待等。

  • 相关阅读:
    Linux修改主机名称
    Tachyon---基于内存的分布式存储系统
    机器学习中的基本数学知识
    Spark集群 + Akka + Kafka + Scala 开发(4) : 开发一个Kafka + Spark的应用
    Spark集群 + Akka + Kafka + Scala 开发(3) : 开发一个Akka + Spark的应用
    Spark集群 + Akka + Kafka + Scala 开发(2) : 开发一个Spark应用
    Spark集群 + Akka + Kafka + Scala 开发(1) : 配置开发环境
    JDBC常用驱动和语法汇总
    JDBC常用驱动和语法汇总
    request.getContextPath获取绝对路径
  • 原文地址:https://www.cnblogs.com/rjjs/p/5865584.html
Copyright © 2011-2022 走看看