js 立即执行函数(自调用函数)

文章介绍了JavaScript中的自调用函数的两种形式,并强调了它们的特点:无法再次调用且可用来创建闭包。自调用函数可以减少全局变量的使用,而闭包则是通过返回函数实现对内部状态的保存。同时,文章提到了函数空间的释放与堆栈的区别。
摘要由CSDN通过智能技术生成

自调用函数的定义:

废话不多说,上代码。

//正常函数声明
var fn1 = function(parmater1,paermater2){
    //函数体
    console.log('正常函数声明');
};//尽量习惯性写;不然就像在这里,即便不调用fn1()同样会输出 正常函数声明
//正常函数调用,如5、7两行都不写;会报错。不过如果7行整行不写不会报错,反而会直接调用fn1()
fn1();//控制台:正常函数声明

// 自调用函数形式1
(function () {
      console.log('自调用函数1');
 })();//这里;不写同样会报错
//控制台:自调用函数1


//自调用函数形式2
(function(){
    console.log('自调用函数2');
}());
//控制台:自调用函数1

注意点:1.自调用函数是隐式函数,无法通过赋值给变量来调用方法,

var fn2 = (function(){
    console.log('自调用函数2');
}());
//fn2();    //这样做会报错
console.log(fn2);    //输出结果为undefined

2.自调用函数运行后立即释放函数空间,无法再度调用。详情请跳转JavaScript中的函数自调用

3.自调用函数虽然无法赋给变量,但却可以通过return将返回值赋给变量。通过这个特点,我们可以用来做闭包

var fn3 = (function(){
    //局部变量写在这里,可以减少全局变量的使用。
    return function(){
        console.log('个人理解:闭包就是把函数当作返回值,赋值给变量');
    }
}());
console.log(fn3);//输出是一个函数体,即fn3内返回的函数。
fn3();    //控制台:个人理解:闭包就是把函数当作返回值,赋值给变量

最后附带链接:

局部变量和全局变量

JavaScript----闭包函数

释放函数空间涉及到堆和栈,链接如下:

JavaScript 中堆和栈的区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值