1、函数表达式
var function = function() {
//函数体
};
2、递归
function factorial(num) {
if(num<=1){ return 1; }
else {return num*factorial(num-1);}
}
arguments.callee是一个指向正在执行函数的指针,因此可以用它实现递归。
function factorial(num) {
if(num<=1){ return 1; }
else {return num*rguments.callee(num-1);}
}
3、闭包:指有权访问另一个函数作用域中的变量的函数,创建闭包的常见形式是在一个函数内部创建另一个函数。
在后台执行环境中闭包的作用域包含着他自己的作用域,函数的作用域和全局作用域
当函数返回一个闭包时,函数的作用域将一直在内存中,知道闭包不存在。
4、私有变量:任何在函数中定义的变量,都可以认为是是由变量,因为不能在函数的外部访问这些变量,私有变量包括函数的参数、局部变量、和在函数内部定义的其它函数。
在JavaScript中没有正式的私有对象属性的概念,但可以使用闭包来实现公有方法,通过公有方法访问其作用域中的变量
有权访问私有变量的公有方法叫做特权方法
创建闭包必须维护额外的作用域,过度的使用可能会导致占用大量的内存。
时间: 2024-10-16 10:23:18