zoukankan      html  css  js  c++  java
  • Javascript基础Function

    • 函数声明与表达式
     1 function someFunc(){
     2     alert("这是一个函数");
     3 }
     4 
     5 var func=function(){
     6     alert("函数表达式");
     7 };//注意末尾有一个分号
     8 
     9 someFunc();
    10 func();
    • 作为值的函数
     1 //把函数当作参数传递给另一个函数,类似C#中的委托用法
     2     function sum(n1){
     3         return n1+10;
     4     }
     5     
     6     function minus(n1){
     7         return n1-10;
     8     }
     9     
    10     function callSomeFunc(someFunc,someArguments){
    11         return someFunc(someArguments);
    12     }
    13     
    14     alert(callSomeFunc(sum,20));
    15     alert(callSomeFunc(minus,30));
     1 //将一个函数作为另一个函数的结果返回
     2 <script type="text/javascript" charset="utf-8">
     3 function createComparisonFunction(propertyName){
     4     return function(obj1,obj2){
     5         var val1=obj1[propertyName];
     6         var val2=obj2[propertyName];
     7         if(val1>val2){
     8             return 1;
     9         }else if(val1<val2){
    10             rerurn -1;
    11         }else{
    12         return 0;
    13         }
    14     }    
    15 }
    16 var data=[{name:"xiao",age:23},{name:"wang",age:26}];
    17 data.sort(createComparisonFunction("name"));
    18 alert(data[0].age);    
    19 </script>
    • 函数内部属性
     1 <script type="text/javascript" charset="utf-8">
     2 //arguments的属性,代替了函数名的紧耦合
     3  function factorial(num){
     4     if(num<=1){
     5         return 1;
     6     }else{
     7         return num*arguments.callee(num-1);
     8     }
     9  } 
    10  alert(factorial(5));
    11 </script>
     1 <script type="text/javascript" charset="utf-8">
     2  function outer(){
     3     inner()
     4  }
     5  function inner(){
     6     //alert(inner.caller);
     7     alert(arguments.callee.caller);//caller获取调用当前函数的引用
     8  } 
     9  inner();
    10 </script>
    • 函数的属性及方法

    name可以获取函数的名称,length属性可以获取函数参数的个数;

    1 function sum(n1,n2){
    2     
    3 }
    4 alert(sum.name);//sum
    5 alert(sum.length);//2
     1 <script type="text/javascript" charset="utf-8">
     2      window.color="red";
     3      var o={color:"bule"};
     4      function showColor(){
     5         alert(this.color);
     6      }
     7      showColor();//red
     8      showColor.call(o);//blue
     9      showColor.apply(o);//blue
    10      var objshowColor= showColor.bind(o);//band创建了函数的一个示例,objshowColor内this就相当于o
    11    objshowColor();//blue 12
     </script>
    1  function sum(n1,n2){
    2     return n1+n2;
    3  }
    4  
    5  function callSum(n1,n2){
    6     return sum.apply(this,arguments);//传递参数
    7  }
    8  
    9  alert(callSum(3,5));

    apply和call不仅可以传递参数,还可以扩充函数的作用域(真正的用处)

  • 相关阅读:
    Chip Factory(HDU5536 + 暴力 || 01字典树)
    Xor Sum(HDU4825 + 字典树)
    Happy Matt Friends(HDU5119 + dp)
    Intersection(HDU5120 + 圆交面积)
    [iOS Animation]-CALayer 绘图效率
    [iOS Animation]-CALayer 性能优化
    [iOS Animation]-CALayer 定时器动画
    [iOS Animation]-CALayer 缓冲
    [iOS Animation]CALayer-图层时间
    [iOS Animation]-CALayer 显示动画
  • 原文地址:https://www.cnblogs.com/Mryjp/p/function.html
Copyright © 2011-2022 走看看