javascript函数学习

		<script type="text/javascript">
		//函数名仅仅是指向函数的指针,因为函数名和其他变量没什么区别,也就是说,一个函数可能会有多个名字(就是多个函数名指向它)
   		function sum(num1,num2)
   		{
   	   		return num1 + num2;
   	   	}
   		alert(sum(10,11));//21
   	   	var sum2 = sum;
		alert(sum2(11,12));//33

		sum = null;//一个函数名不指向任何函数之后,它不影响其他函数名的指向
		alert(sum2(22,22));//44
   </script>

 <script type="text/javascript">
	
		function sum(num)
    	{
        	return num + 100;
    	}

        function sum(num)
        {
            return num + 1000;
        }
        
        alert(sum(100));//1100

		//函数没有重载,只会覆盖,把函数想成一个指针,我们将上面的函数改写如下形式,就更好懂了,
		//sum的开始指向一个函数,后来指向另一个函数。
		
		var sum = function(num)
		{
			return num + 100;
		}

		var sum = function(num)
		{
			return num + 1000;
		}

		alert(sum(100));//1100
		
    </script>

     <script type="text/javascript">
		//函数声明先于函数表达式执行,所有如下先表达式后声明没有问题
  		alert(sum(10));//20

		function sum(num1)
		{
			return num1 + 10;
		}
		//如下运行期会出错,原因是由于函数位于一个初始化语句中,而不是函数声明。不是先于函数表达式执行,所以执行到alert(sum2(10));就会出错
  		alert(sum2(10));

		var sum2 = function(num2)
		{
			return num2 + 10
		}
     </script>

<script type="text/javascript">
      		//函数可以作为返回值
      		function callSomeFunction(someFunction,someArgument)
      		{
          		return someFunction(someArgument);
          	}

          	function sum(num)
          	{
            	return num + 10;  	
            }

          	function link(str)
          	{
              	return str + "hello";
            }
          	alert(callSomeFunction(sum,20));

      		alert(callSomeFunction(link,"world"));


			//传入属性值就可以进行排序,就可以按什么属性排序
          function sortByProperty(propertyName)
          {
              //返回一个对象,这个对象是函数  (函数就是一个对象)
              return function(obj1,obj2)
              {
                  if(obj1[propertyName] > obj2[propertyName])
                  {
                      return 1;
                  }else if(obj1[propertyName] == obj2[propertyName])
                  {
                      return 0;
                  }else {
					  return -1;
                  }
              }
          }

		var userData = [{name : "zhangsan", age : 24},{name : "lisi", age : 25}];

		userData.sort(sortByProperty("name"));//按照name排序
		alert(userData[0].name);//lisi
		userData.sort(sortByProperty("age"));//按照age排序
		alert(userData[0].age);//24  		
      </script>
		
		
		
  </head>



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值