JavaScript function函数种类:普通函数、匿名函数、闭包函数

普通函数、匿名函数、闭包函数

1.普通函数介绍

1.2 Js中同名函数的覆盖

在Js中函数是没有重载,定义相同函数名、不同参数签名的函数,后面的函数会覆盖前面的函数。调用时,只会调用后面的函数。

1.3 arguments对象

arguments 类似于C#的params,操作可变参数:传入函数的参数数量大于定义时的参数数量。

function showNames(name) {
    alert(name);//张三
    for (var i = 0; i < arguments.length; i++) {
        alert(arguments[i]);//张三、李四、王五
    }
}
showNames('张三','李四','王五');

1.4 函数的默认范围值

默认返回的是'undefined'

2.匿名函数

2.1 变量匿名函数

可以把函数赋值给变量、事件。避免函数名污染,滥用

//变量匿名函数,左侧可以为变量、事件等
var anonymousNormal = function (p1, p2) {
    alert(p1+p2);
}
anonymousNormal(3,6);//输出9

2.2 无名称匿名函数

浏览器加载完,只需执行一次的

即在函数声明时,在后面紧跟参数。Js语法解析此函数时,里面代码立即执行。

(function (p1) {
    alert(p1);
})(1);

3. 闭包函数

3.1 说明

假设,函数A内部声明了个函数B,函数B引用了函数B之外的变量,并且函数A的返回值为函数B的引用。那么函数B就是闭包函数。

3.2 示例

全局变量占有的资源只有当页面变换或浏览器关闭后才会释放。

function funA() {
    var i = 0;
    function funB() { //闭包函数funB
        i++;
        alert(i)
    }
    return funB;
}
var allShowA = funA(); //全局变量引用:累加输出1,2,3,4等
function partShowA() {
    var showa = funA();//局部变量引用:只输出1
    showa();
}

此处评论已关闭