美文网首页
2018-10-25 Function类型(p110-p115)

2018-10-25 Function类型(p110-p115)

作者: 走花鹿 | 来源:发表于2018-10-25 18:00 被阅读0次
          1.函数声明语法:
        例:function sum (num1,num2){
                return num1 + num2;
        }
        
    2.函数表达式定义:
        var sum = function(num1,num2){
            return num1 + num2;
        }
        
    3.Function构造函数
        var sum = new Function("num1","num2","return num1 + num2");不推荐!!!
        
        
5.5.1 没有重载,会被后面的同名函数覆盖

    
5.5.2 函数声明与函数表达式 
            解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问);
            至于函数表达式,则必须等到解析器执行到它所在的代码行,才会真正被执行。
            
            例:
                alert(sum(10,10))
                function sum (num1,num2){
                    return num1 + num2;
                }
            
            解析器有函数声明提升的过程。
            
5.5.3 作为值的函数
            例:
                function add10(num){
                    return num + 10;
                }
                
                var result1 = callSonmeFunction(add10,10);
                alert(result1);//20
        
        要访问函数的指针而不执行函数的话,必须去掉函数名后面的那对圆括号。
        
        
        可以从一个函数中返回了一个函数
            例:function createComparisonFunction(propertyName){
                return function(object1,object2){
                    var value1 = object[propertyName];
                    var value2 = object[propertyName];
                    
                    if(value1<value2){
                        return -1;
                    }else if(value1>value2){
                        return 1;
                    }else{
                        return 0;
                    }
                };
            }
            
            
            var data = [{name:"Zachary",age:28},{name:"Nicholas",age:29}];
            
            data.sort(createComparisonFunction("name"));
            alert(data[0].name);//Nicholas
            
            data.sort(createComparisonFunction("age"));
            alert(data[0].name);//Zachary
            
            
5.5.4  函数内部属性
            在函数内部,有两个特殊的对象:arguments和this。
            arguments的主要用途是保存函数参数,但这个对象还有一个名叫callee的属性,该属性是一个指针,指向拥有
            这个arguments对象的函数
            
            例:阶乘函数
                function factorial(num){
                    if(num<=1){
                        return 1;
                    }else{
                        return num *factorial(num-1);
                    }
                }
            问题在于这个函数的执行与函数名factorial紧紧
耦合在了一起。为了消除耦合,可以使用arguments.callee.
            
                例:
                    function factorial(num){
                        if(num<=1){
                            return 1;
                        }else{
                            return num*argument.callee(num-1);
                        }
                    }
                    
 在这个重写后的factorial()函数的函数体内,
  没有在引用函数名factorial。这样,无论引用函数时是用什么名字都可以保证完成递归调用.
            
                var trueFactorial = factorial;
                factorial = function(num){
                    return 1;
                };
                alert(factorial(5));//1
                alert(trueFactorial(5));//120

相关文章

  • 2018-10-25 Function类型(p110-p115)

  • Function 类型

    定义函数的方式: 函数内部属性 arguments 它是一个类数组对象,包含着传入函数中的所有参数。 虽然 arg...

  • Function类型

    函数声明与函数表达式 声明提前 函数表达式的name无法在函数外使用 name只是地址引用,函数本体在内存堆中 引...

  • Function类型

    作为值的函数 把函数本身作为参数传递 函数的返回值作为参数传递 以我小白的眼光来看,此处容易混淆,值得反复思量。 ...

  • Function类型

    函数实际上是对象。函数名是指向函数的指针。使用不带圆括号的函数名是访问函数指针,而非调用函数。 函数定义 函数声明...

  • Function类型

    一、概念 Function(函数)类型实际上是对象。每个函数都是 Function 类型的 实例,而且都与其他引用...

  • Function 类型

    Function 类型 函数实际上是对象。每个函数都是 Function 类型的实例,而且都与其他引用类型一样具有...

  • Function类型

    函数名仅仅是指向函数的指针,函数名与包含对象指针的其他变量没有什么不同。换句话说,一个函数可能会有多个名字,如下面...

  • Function类型

    1.函数实际上是对象。 2.每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法。 3....

  • Swift 学习笔记 - 函数与闭包

    函数 使用函数类型 (Using Function Types) 函数类型作为参数类型 (Function Typ...

网友评论

      本文标题:2018-10-25 Function类型(p110-p115)

      本文链接:https://www.haomeiwen.com/subject/akmctqtx.html