首页 > 其他分享 >JS精粹--匿名函数与自执行匿名函数

JS精粹--匿名函数与自执行匿名函数

时间:2023-01-06 15:24:10浏览次数:57  
标签:函数 -- add 类型 匿名 var 表达式

1. 函数也是一种类型

要理解匿名函数,首先需要理解函数也是一种类型。

所以函数可以赋值给变量,如下:

        // 将数字类型值赋给变量
        var num = 1;
        // 将函数类型值赋给变量
        var hello = function () {
            console.log("hello world");
        }
        // 执行num表达式
        num++;
        // hello
        hello();

由于数字类型和函数类型不同,数字类型可以进行运算,例如上面的++,而函数类型可以进行调用运算,就是()。

2. 匿名函数

一般的函数是需要命名然后调用的,如下例中,函数被命名为add,然后通过add()调用。

        function add(a, b) {
            return a + b;
        }

        var sum = add(1, 2);

也可以不命名,直接定义一个函数,这种方式叫做函数表达式。由于函数表达式在定义函数时没有命名,所以函数表达式是一种匿名函数。

        var add = function(a, b) {
            return a + b;
        }

        var sum = add(1, 2);

以上两种方式,执行结果是同样的。

3. 自执行匿名函数

有时候我们总是想偷懒,在上面的例子中,如果我们的add函数再整个使用期间,只调用一次,那就没必要再专门弄个变量add来指向函数了。

我们可以通过自执行匿名函数,直接执行当前的函数表达式,代码如下:

          var sum = (function (a, b) {
            return a + b;
        })(1, 2);

这里就需要解释下了,通过括号将函数包裹起来,这样的含义就是立即调用的意思,然后后面的(1,2)就是当前调用函数的参数列表。

其实就是通过括号包裹函数表达式,实现自执行效果

4. 小结

匿名函数是一种更加简洁,更加能体现JavaScript类型规范的函数实现语法,只要想到函数也是一种类型,就比较容易理解了。

标签:函数,--,add,类型,匿名,var,表达式
From: https://www.cnblogs.com/caihongmin/p/17030567.html

相关文章

  • bzip2 C/C++ 库bzlib.h使用案例:读取.bz2文件
    准备从网上下载bzip2库,我下载的是V1.0.8版本的。然后在C工程中添加一个筛选器(文件夹)名叫bzlib,然后把下载的库中的如下9个文件,添加到其中:代码主函数代码如下:#include......
  • HTML
    目录网页1.概念:2.形成:3.HTML:浏览器1.含义:2.内核:3.常用:Web标准(重点)1.原因:2.构成:3.优点:HTML的语法规范1.基本语法的概述:2.标签关系:3.基本结构标签:4.代码含义:标签语义1.标题标......
  • 青占鱼与缇鱼区别 All In One
    青占鱼与缇鱼区别(......
  • tomcat远程代码执行漏洞(CVE-2019-0232)
    漏洞原理漏洞相关的代码在tomcat\java\org\apache\catalina\servlets\CGIServlet.java中,CGIServlet提供了一个cgi的调用接口,在启用enableCmdLineArguments参数时,会根......
  • 指针参数和返回值指针相关问题
    指针参数和返回值指针相关问题一、前言我们知道普通变量作为参数传入函数是无法修改变量的值,如下示例就是典型的voidswap(intx,inty){inttemp=x;x=y;......
  • tomcat系列漏洞总结
    tomcat介绍Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首......
  • 苹果iOS app上架流程
     一般app开发需要经过确定功能需求,确定UI设计,正式开发,进行测试等流程,然后再上架到应用商店。苹果app上架流程一般经过5个步骤:1.申请苹果开发者账号2.创建APP......
  • 主流的4种跨网文件交换方式优缺点介绍
    网络上承载了太多企业的业务,其安全性一定要得到保障,所以很多企业和机构都会选择将网络进行隔离划分,比如内外网隔离,办公网、研发网隔离等,也有不少企业会选择用云桌面的形式......
  • netcore 容器内部监听设置localhost 外部无法访问
    情况1  由于localhost只能够在容器内部访问,所以在设置的时候改为*号,而不是固定ip。情况2  也可能由于只配置了容器和宿主机的映射,容器内部未监听端口号导致情况3......
  • .Net Core 用自动生成Dockerfile的坑
    简介  之前采用shell脚本+dockerfile的方式构建项目,后来发现Docker在17.05版本之后有多阶段构建方式,该文主要记录了netcore采用dockerfile构建遇到的坑。原先的方式......