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

JavaScript(二) 函数定义以及arguments使用

时间:2016-08-06 01:52:21      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:

Function函数定义的三种方式:

1.function语句形式;2.函数直接量的形式 3.构造函数形式前两种创建函数区别:function语句形式,JavaScript解释器直接去找并解释;
相当于js代码上来就解释function语句形式;其他的代码从上到下执行
可以理解成,第一种可以在任何位置调用;而第二种只能在定义之后调用;第三种具有顶级作用域的作用

arguments对象,

每一个函数内部都有一个arguments对象
1.接收函数的实际参数 2.用于递归操作

//Function函数
//定义的三种方式:1.function语句形式;2.函数直接量的形式  3.构造函数形式
//前两种创建函数区别:function语句形式,JavaScript解释器直接去找并解释;
//相当于js代码上来就解释function语句形式;其他的代码从上到下执行
//可以理解成,第一种可以在任何位置调用;而第二种只能在定义之后调用;

//arguments对象,每一个函数内部都有一个arguments对象
//1.接收函数的实际参数 2.用于递归操作

//fun1();  //调用fun1...
//fun2();  //fun2 is not a function
//alert("1"+typeof fun2); //Undefined,相当于只定义,但是没有解释函数体

//1.function语句形式,一般都用这种
//可以在任何位置调用
function fun1(){
    alert("调用fun1...");
};

//2.函数直接量的形式
//只能在定义之后调用
var fun2 = function(){
    alert("调用fun2...");
};
//alert("2"+typeof fun2);//function
//fun2();    //调用fun2...

//3.构造函数形式
//作用域与前两种不同,具有顶级作用域
var fun3 = new Function("x","y","return x+y;");
//alert(fun3(10,20));

var k = 1;
function test(){
    var k = 2;
    //创建三种方式的函数
//    function f(){return k;};    //返回2,返回局部的k
//    var f = function(){return k;};    //返回2
    var f = new Function("return k;");    //返回1
    alert(f());
};
//test();



//arguments对象,每一个函数内部都有一个arguments对象
//1.接收函数的实际参数 2.用于递归操作
function testarguments(x,y){
    alert(arguments);        //[object Arguments]
    alert(arguments.length);//3
    alert(arguments[1]);    //2
    
};
//testarguments(1,2,3);

function testarguments1(number){
    if (number<=1) {
        return 1;
    }else{
        return number*arguments.callee(number-1);//调用函数本身
        //为什么不用testarguments1(number-1)替换arguments.callee(number-1)
    }
};
alert(testarguments1((5)));    //120

 

JavaScript(二) 函数定义以及arguments使用

标签:

原文地址:http://www.cnblogs.com/wangqiang4518/p/5743170.html

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