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

javaScript的function

时间:2016-08-10 06:35:48      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:

一、函数的声明方式

1、普通的函数声明

function box(num1,num2){
    return num1+num2;
}

2、使用变量初始化函数

var box=function(num1,num2){
    return num1+num2;
}

3、使用Function构造函数

var box=new Function("num1","num2","return num1+num2");

第三种不推荐,因为这种语法导致解析两次代码(第一次解析常规ECMAScript代码,第二次解析传入构造函数中的字符串)
,从而影响性能,但我们可以通过这种语法来理解,函数是对象,函数名是指针的概念

二、作为值的函数,函数可以传递函数

1、函数的返回值可以来传递

    function box(sum, num) {
        return sum + num;
    }

    function sum(num) {
        return num + 10;
    }
    var result = box(sum(10), 10); //这里传递的是函数的返回值,和普通变量没区别
    alert(result);//输出30

2、把函数本身作为参数来传递,而不是作为结果

    function box(sum, num) {
        return sum(num);
    }

    function sum(num) {
        return num + 10;
    }
    var result = box(sum, 10) //这里sum是函数,当做参数传递到另外一个函数里,而不是返回值
    alert(result); //20 

三、函数内部属性

1、arguments类数组对象,包含了传入函数中所有参数,这个对象还有一个callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数

    function box(num) {
        if (num <= 1) {
            console.log("if" + num);
            return 1;
        } else {
            console.log("else" + num);
            //return num * box(num - 1);
            return num*arguments.callee(num-1);
        }
    }
    console.log(box(5));//120 5*4*3*2*1

 

以上是一个阶乘或者是递归,box调用了自己,如果很多自我调用修改也许会麻烦,所以用到arguments.callee来调用自己

 

javaScript的function

标签:

原文地址:http://www.cnblogs.com/lgxlsm/p/5755267.html

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