• JavaScript的函数


    • Function
            函数实际上就是对象,每一个函数都是Function类型的实例;函数的定义方式有很多种不一一列举了。

    其中有一种特殊的定义方式:

    var fnSum = new Function("num1","num2","return num1+num2"); //不推荐
    一般情况下不推荐使用这种方式。因为这种语法会导致解析两次代码(第一次是解析常规ECMAScript代码,第二次解析传入构造函数中的字符串)。
    但是这种语法却可以很清晰的理解“函数是对象,函数名是指针”。 
    • 函数声明与函数表达式
    函数声明与函数表达式是有区别的。具体有什么区别呢?

    解析器在向执行环境中加载数据时,对函数声明和函数表达式并非一视同仁。解析器会率先读取函数声明,并使其在执行任何代码之前可以访问;至于函数表达式,则必须等到解析器执行到它所在的代码行,才会真正被解释执行。查看下面2个例子:

      1. 错误的  
        alert(sum(10,10));
        var sum = function(num1,num2){
            return num1 + num2;
        }
      2. 正确的   
        alert(sum(10,10));
        function sum (num1,num2){
            return num1 + num2;
        }
    • 函数内部属性

     其余的我就不一一列举。主要说明以下2个属性:

    1. callee
      返回正被执行的 Function 对象,也就是所指定的 Function 对象的正文
      以下函数返回阶乘

      function factorial(num) {
          if (num <= 1) {
              return 1;
          }else {
               return num * arguments.callee(num-1);
          }
      }
        

    2. caller  
      返回一个对函数的引用,该函数调用了当前函数。
      function outer() {
          inner();
      }

      function inner() {
          alert(inner.caller);
      }

      outer();
  • 相关阅读:
    POJ 3164 Command Network 最小树形图 朱刘算法
    区间dp专题
    HDU2896病毒入侵AC_自动机
    HDU2222Keywords Search AC_自动机
    Linux cat命令参数及使用方法详解
    MySQL分支Percona, cmake编译安装
    PHP网站简单架构 – 单独跑php-fpm
    Tengine – Nginx衍生版
    jemalloc优化MySQL、Nginx内存管理
    TCMalloc优化MySQL、Nginx、Redis内存管理
  • 原文地址:https://www.cnblogs.com/blueSkys/p/2705233.html
Copyright © 2020-2023  润新知