首页 > 编程语言 >JavaScript:立即执行函数

JavaScript:立即执行函数

时间:2022-12-09 19:44:37浏览次数:46  
标签:调用 函数 JavaScript 调用函数 立即 匿名 内存 执行

想象一下,如果我希望某个代码块,只执行一次,就不再执行,应该怎么办?

代码块肯定是用函数来表示,执行肯定是调用函数,但是确保只执行一次,该怎么办?

我们为什么可以多次调用函数,因为函数名指向了函数的内存区域,通过函数名()的方式去调用函数;

那没有函数名,不就可以不被多次调用吗,也就是说,我们需要声明一个匿名函数,并且立即去调用;

函数表达式和箭头函数都可以声明一个匿名函数;

有两种写法:

  • 用括号,将匿名函数括起来,再加上()去调用;

  • 匿名函数加上()先调用,再用括号括起来,但是箭头函数不能这样写,会报错;

    具体如下图所示:

image-20221209191800952

这样的写法,函数只执行一次,并且是立即执行,执行完毕以后,因为没有函数名指向这块内存区域,故而会被垃圾回收;

这样的做法,

可以提高代码运行效率;

可以使函数内声明的变量,执行完毕以后就被垃圾回收,不会引起全局污染;

可以用在初始化上,先执行初始化,完毕以后就垃圾回收,节省内存;

标签:调用,函数,JavaScript,调用函数,立即,匿名,内存,执行
From: https://www.cnblogs.com/Journing/p/16969806.html

相关文章

  • JavaScript:对象:如何复制一个对象?浅拷贝与深拷贝
    回顾一下,我们对传参的讨论,对象的传参是引用传递,我们传递的是对象数据所在的内存地址;那么无论我们怎么去赋值,所有变量指向的都是同一块内存;如上图所示,无论我去使用哪个变......
  • Excel中的RIGHT函数
    问题:从数据库中导出35800个用户code(属于179家单位,每个单位200个用户),用户code共16位,前14位带有用户属性(如:角色、单位、部门等),后四位为每个单位用户的递增自然数。想要对全......
  • DAX:LOOKUPVALUE 函数
    LOOKUPVALUE函数用于根据一个或多个搜索条件,从一个表中获取一个或0个值。LOOKUPVALUE运行在行上下文中,不需要两个表之间存在关系,搜索结果也不受过滤条件的影响。当两个表之......
  • JavaScript:对象:如何读取、添加、删除对象的属性?
    如何给对象添加属性?直接对象名.属性名去添加属性直接对象名[属性名]去添加属性,此时属性名得是字符串类型,可以直接引号,也可以用变量名如何读取对象的属性值?这......
  • JavaScript:对象:如何去遍历输出一个对象的属性?语句for-in
    使用for-in的for循环语句,可以去遍历一个对象的属性,这类似于Java的增强for循环;但是注意,这并不能遍历对象的所有属性,有些隐藏的属性,是无法遍历出来的,虽然我们可以通过控制台......
  • JavaScript:箭头函数:省略写法
    之所以把箭头函数拎出来,是因为它不仅仅是声明函数的一种方式,它还是函数式编程的重要根基,它使得函数的使用更加的灵活,同时,它的语法,也相对于function声明的函数更加灵活和复......
  • JavaScript:箭头函数:作为参数进行传参
    之前已经说过,JS的函数,也是对象,而函数名是一个变量,是可以进行传参的,也即函数是可以被传参的。只要是函数,都可以被传参,但是箭头函数的语法更为灵活,所以更方便进行传参。如......
  • JavaScript:对象:如何创建对象?
    JS是面向对象的语言,除开基础数据类型,其他所有的数据类型都是对象,包括函数。如何去理解对象,什么是对象呢?举个例子,比如我们将日常生活中见到的猫这种动物,抽象成一个类Cat,这......
  • JavaScript:变量: 如何声明变量?
    声明变量可以用下面几种方式:但是这几种声明方式肯定是有区别的,主要是上面三种方式的区别,这需要结合window对象和作用域来说明,这里不赘述。声明变量的时候,推荐使用let,这......
  • JavaScript:变量:声明和赋值变量时,内存结构是什么样的?
    这里只是大概画出内存结构的模型图,方便理解当我们声明变量和赋值变量时,到底在干嘛。如上图所示,a赋值一个对象{},b赋值字符串hello;于是内存里划了三个区域给我们,一个存储......