匿名函数

JavaScript 匿名函数免费看

什么是匿名函数、匿名函数的使用、

2020-06-13侠课岛    基础入门       

前端/前端必修/JavaScript 基础知识梳理 14     0     1115

什么是匿名函数

JavaScript 中的匿名函数其实就是没有名字的函数,例如一般函数长下面这个样子:

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

其中 add 就是函数的函数名,我们在调用函数的时候,会用到这个函数名。

add(10, 16);

而匿名函数呢,就是没有这个函数名,例如下面这个函数:

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

所以我们就会发现一个问题,调用函数时需要用到函数名,但是匿名函数没有函数名,那么匿名函数要怎么调用呢?

匿名函数的使用

下面我们来讲一下匿名函数的使用:

  • 第一种方法,我们可以把这个匿名函数放进一个变量里,这个变量就相当于一个函数名了,在调用的时候就用变量名加小括号调用即可。
示例:

将匿名函数赋给变量 add,在调用的时候使用 add() 调用,参数也是放到小括号中,使用起来和普通函数很类似:

var add = function(a, b){
    console.log(a + b);
}

add(1, 5);  // 6
  • 第二种方法,不要名字直接执行,这么做可以在内容形成局部变量和局部函数,防止全局污染。

有两种写法,如下所示:

(匿名函数)();
(匿名函数());
示例:

下面是两种匿名函数执行的写法:

(function(a, b){
    console.log(a + b);
})(10, 20);     // 输出:30

(function(a, b){
    console.log(a + b);
}(10, 20));   // 输出:30

这两种写法的运行结果都是一样的。

除此之外,还有一些不太常用的调用匿名函数的方法,大家也可以动手试一试,例如在 function 前面加一元操作符号:

!function(){ /**/ }();    
~function(){ /**/ }();  
-function(){ /**/ }();
+function(){ /**/ }();

或者在 function 前面添加 new 关键词:

new function () { /**/ }  
new function () { /**/ } ()  
  • 第三种方法,作为对象的方法调用。
示例:

例如我们创建一个 info 对象,在这个对象中定义属性和方法,然后通过对象,调用方法:

let info = {
    name: "xkd",
    age: 18,
    show:function(){
        console.log(this.name + "已经" + this.age + "岁了!")  
    }
}

info.show();   // 输出:xkd已经18岁了!
  • 第四种方法,通过事件调用匿名函数。
示例:

例如在 button 按钮上有一个 id 选择器,然后通过点击事件绑定一个匿名函数:

<body>
    <button id = "btn">点击按钮</button>
    <script>
      var btn = document.getElementById("btn"); 
      // 添加事件
      btn.onclick = function(){
        console.log("点击事件");
      }
    </script>
</body>
  • 第五种方法,作为另外一个函数的参数调用。
示例:

例如我们将匿名函数作为 show)() 方法的参数调用:

function show(a){
    a();
}   

show(function(){ console.log("作为参数调用") });  // 作为参数调用

本教程图文或视频等内容版权归侠课岛所有,任何机构、媒体、网站或个人未经本网协议授权不得转载、转贴或以其他方式复制发布或发表。

评价

14

本课评分:
  •     非常好
难易程度:
  •     适中的

内容目录


本文索引


|
教程
粉丝
主页

签到有礼

已签到2天,连续签到7天即可领取7天全站VIP

  • 1
    +2 金币
  • 2
    +3 金币
  • 3
    +5 金币
  • 6
    +7 金币
  • 5
    +6 金币
  • 4
    暖心福利
    自选分类VIP ×1天
  • 7
    惊喜大礼

    自选分类VIP ×3天 +20金币
  • 持续签到 +8 金币

金币可以用来做什么?