Javascript - Function

函数的定义

函数声明

function myFunction(a, b) {
    return a * b;
}

函数表达式(匿名函数)

var x = function (a, b) {return a * b};

Function() 构造函数

var myFunction = new Function("a", "b", "return a * b");
var x = myFunction(4, 3);

函数的提升(Hoisting)

JavaScript 默认将当前 变量的声明与函数的声明 的作用域提升到 最前面 去。所以,函数可以在声明之前调用。

myFunction(5);

function myFunction(y) {
    return y * y;
}

函数的使用

普通地作为一个函数(值)使用

function myFunction(a, b) {
    return a * b;
}

var x = myFunction(4, 3);

自调用函数

// 在函数表达式后面紧跟 () ,则会自动调用。即该函数表达式的返回值不是一个函数,而是函数的执行结果。
// 但是不能自调用声明的函数。
(function () {
    var x = "Hello!!";
})();

闭包

可访问上一层函数作用域里变量的函数,即使上一层函数已经关闭。闭包使得函数拥有私有变量变成可能

// counter变量为add()私有,且可以在add()关闭后继续使用
var add = (function () {
    var counter = 0;
    return function () {return counter += 1;}
})();

add();
add();

// 计数器为 2
Fork me on GitHub