zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    消除 transition 闪屏
    解决audio和video在手机端无法自动播放问题
    css3让图文不能复制
    改变placeholder的字体颜色大小
    css3实现水平、垂直居中
    link 和@import 的区别
    JSON与对象的相互转换
    indexOf与includes的比较
    DOM盒子模型
    关于Meta标签的一些知识
  • 原文地址:https://www.cnblogs.com/blueSkys/p/2705233.html
Copyright © 2011-2022 走看看