JS Functions

       JS 函数定义:

           1. function f(x){.....} 

           2. var a = function(x){....}

           3. function(x){....}

       三种定义方式的区别为: 第一种是最常用的定义方式,它的声明会自动提升到它定义范围的顶部,即可以在它的定义之前使用它。第二种定义方式只能是在它的声明之后使用,不能在声明之前使用它。第三种为匿名函数,它多用于作为函数参数或直接执行使用。

       函数的调用可以分为四种:

           1. 作为一个函数来调用。

           2. 作为对象的方法来调用。

           3. 作为构造函数来使用。

           4. 用call()或apply()方法非直接调用方式来使用它们。

      JavaScript函数参数: JavaScript并不对函数参数进行检查(包括参数个数与类型的检查),实参个数可以多于形参个数,也可以比形参个数少。它也就没有了像java里那样的函数重载。JavaScript函数有一个arguments的实参对象,它是一个像数组的对象,有一个length属性为实参实际的个数,可以用arguments[i]这样的形式来引用相应的实参。arguments还有一个callee的属性,它指代的是当前运行的函数。如:

var cx = (function(x){
    if(x == 1) return 1;
    else return x*arguments.callee(x-1);
}(5));

console.log(cx);
       callee属性还有一个length属性,它代表的是形参个数。
        当函数参数比较多的时候,可以使用一个对象来作为参数,这样做可以不必记住每个参数实际的位置甚至个数。

       因为函数也是一种对象,所以可以为函数添加自定义的属性。

       由于JavaScript里面函数作用域的特性,可以使用一个函数来作为命名空间,从而不使不需要出现在其它作用域的变量等污染其它作用域。

       对于call()与apply()方法,它们俩的作用基本相同,只是call()方法第一个参数为调用函数的对象,其它参数为给函数的实际参数。而apply()方法第一个参数与call()方法相同,而第二个方法为一个数组,它包含了所有的实际参数。


     









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值