码迷,mamicode.com
首页 > 编程语言 > 详细

javascript函数

时间:2015-10-18 18:18:18      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

Function对象

js中一切都是对象,函数也是对象,函数名是引用函数定义对的变量。

1.函数的定义

 1 //函数定义的三种方法
 2     //声明方式
 3     function sum(x,y){
 4         return x+y;
 5     }
 6     sum(1,2);//调用sum函数,求和
 7     //函数名和函数定义都被提前,在调用前后位置定义都行
 8     
 9     //函数直接量
10     var sum = function(x,y){
11         return x+y;
12     }
13     sum(1,2);//调用sum函数,求和
14     //仅函数名声明变量会提前,函数定义留在本地,必须定义在调用前
15     
16     //使用new创建函数类型对象
17     var sum = new Function("x","y","return x+y");

2.匿名函数

  定义时,不指定函数名的函数  

/* 匿名函数自调:
    定义完,立即执行,执行完立即释放
    只有确定函数只执行一次时使用
*/
(function(x,y){alert(x*y)})(2,3);
var tens = (function(x) {return x*x}(10));
//自调:定义在哪,就在哪执行,不提前

/* 匿名函数回调
    将函数作为队象传递给另一个函数,由另一个函数自主决定在需要时调用
*/
var arr=[1,12,123,3,2,23];
arr.sort(function(a,b){return a-b;});//比较器函数回调
console.log(arr);

3.arguments对象

  标识符arguments是指向拾参对象的引用,实参对象是一个类数组对象。每个实参对象都包含以数字为索引的一组元素以及length属性,但它毕竟不是真正的数组。

  js语法不支持重载,但可用arguments对象模拟重载效果。

  arguments[i]  获得传入的下标为i的的参数值

  arguments.length  获得传入参数的个数

 1 function calc(   ){
 2     //如果用户传入一个参数,求平方
 3     if(arguments.length==1){
 4         alert(arguments[0]*arguments[0]);
 5     }else if(arguments.length==2){
 6     //如果用户传入两个参数,就求和
 7         alert(arguments[0]+arguments[1]);
 8     }
 9 }
10 calc(4); //16
11 calc(4,5); //9
12 /*无论用户传入几个数字,都可以求和*/
13 function add(){
14     //遍历arguments中每个元素,并累加
15     for(var i=0,sum=0;i<arguments.length;sum+=arguments[i++]);
16     return sum;//返回和
17 }
18 
19 alert(add(1,2,3)); //6
20 alert(add(1,2,3,4,5,6)); //21

即使定义了参数变量,arguments对象同样会收到所有参数值

 

javascript函数

标签:

原文地址:http://www.cnblogs.com/Medeor/p/4889928.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!