zoukankan      html  css  js  c++  java
  • js Function类型


    1.函数就是对象,而函数名是指向函数对象的指针,不会与某个函数绑定。

    2.函数没有重载(函数重载:同一个函数名对应着多个函数的实现.)

    For Examle:

      function addnum(num){return num+10 }

      function addnum(num){return num+20}

         addnum(10);//30

    3.函数表达式与函数声名(解析器会率先读取函数声明,其它情况都是等价的).

    4.作为值的函数(函数名本身就是变量,所以可以作为值来使用)。

        a.从一个函数中返回另一个函数

    function callFunction(someFunction,someArguments){
     return someFunction(someArguments);
    }
    function add20(num){
     return  num+20;
    }
    var result = callFunction(add20,30); //去掉函数圆括号是对函数指针的引用,而加上圆括号是立即执行函数.
    alert(result); //50

      b.按照某个对象属性给对象数组进行排序?

    function compareFunction(properyName){

      return function(obj1,obj2){

        var value1 = obj1[propertyName];

               var value2 = obj2[propertyName];

               if(value1>value2){

                 return 1;

               }else if{value1<value2}{

                     return -1;

               else{

          return 0

         }

         }

    }

    var  data = [{name : "Jin",age : 24},{name:"awei",25}];

    data.sort(compareFunction("name"));

    data[0].name;

    5.函数的内部属性(arguments(callee)、this);

    6.函数的属性和方法。

        属性:length、prototype

      方法:apply()、call() (这两个非继承而来的方法实际上等于设置函数体内this对象的值.)

      apply()方法接受两个参数:1.在其中运行函数的作用域;2.参数数组.

        function sum(num1,num2){
       return num1+num2;
      }
      function callSum(){
       return sum.apply(this,arguments);  
      }
      alert(callSum(10,20));//30

      call()方法除了第二个参数必须要逐个列举外,其它和apply()方法一样. 

  • 相关阅读:
    做题总结
    关于SQLSERVER中用SQL语句查询的一些个人理解
    关于SQLSERVER联合查询一点看法
    C#中怎样实现序列化和反序列化
    java内部类的使用
    C#抽象类
    匿名类
    Foreach能够循环的本质
    C#索引器
    深入了解接口的使用
  • 原文地址:https://www.cnblogs.com/1haojia/p/2275111.html
Copyright © 2011-2022 走看看