JavaScript 匿名函数和命名函数的区别

JavaScript 匿名函数和命名函数的区别

在JavaScript或其他编程语言中,函数、循环、数学运算符和变量是最常用的工具。本文将告诉您匿名函数和命名函数的区别。我们将在本文中讨论所有必要的概念,全面了解命名和匿名函数。

匿名函数: 正如其名,”匿名函数”指的是没有名称或标题的函数。在JavaScript中,匿名函数是在没有标识的情况下声明的函数。这是常规函数和匿名函数之间的区别。创建后无法访问匿名函数,只能通过将其存储为函数值的变量来获取。匿名函数可以有多个参数,但只能有一个表达式。

语法:

function(){
   // Function Body
}

让我们通过示例来理解。

示例 1: 在这个示例中,我们构建了一个匿名函数,它会将一条消息打印到控制台。然后,这个函数被保存在test变量中。我们可以通过调用test()来调用这个函数。

Javascript

<script> 
   var test = function () { 
      console.log("This is an anonymous function!"); 
   }; 
   test(); 
</script> 

输出:

This is an anonymous function!

示例 2: 匿名函数也可以接受参数。

JavaScript

<script> 
   var test = function (platform) { 
      console.log("This is an anonymous ", platform); 
   }; 
  
   test("function!"); 
</script> 

输出:

This is an anonymous function!

我们确实可以将匿名函数作为参数传递给另一个函数,因为JavaScript允许高阶函数。

示例3: 在这里,我们将一个匿名函数作为回调函数发送给setTimeout()方法。这将在1500毫秒后调用匿名函数。

Javascript

<script> 
   setTimeout(function () { 
   console.log("This is an anonymous function!"); 
   }, 1500); 
</script> 

输出:

This is an anonymous function!

命名的函数: 在JavaScript中,命名函数只是一种引用函数的方式,它使用函数关键字后面跟着一个可以用作该函数的回调函数的名称。具有名称或标识符的普通函数被称为命名函数。它们可以在表达式中使用或在语句中声明。函数的名称存储在其主体中,这很方便。我们可以使用该名称使函数调用自己,或者访问其与每个对象相似的属性。

语法:

function displayMessage(){
 // function..body
}

让我们通过一些示例来理解这个概念:

示例 1: 在这个示例中,我们将定义一个普通函数来打印一条消息。

Javascript

<script> 
   function test() { 
       console.log (`This is a named function!`); 
   }; 
</script> 

输出:

This is a named function! 

示例2: 您可以将命名函数添加到对象的变量上,然后在对象上调用该函数。

Javascript

<script> 
   function test() { 
       console.log (`This is a ${this.func}`); 
   } 
   const func = { 
       func: 'named function!', 
       test 
   } 
   func.test(); 
</script>

输出:

This is a named function!

示例3: 在JavaScript中,命名函数是调用函数最频繁的一种方式之一。你经常会遇到它们。这里值得一提的另一点是如何使用return关键字从函数中返回一个值。这并不仅限于命名函数。

JavaScript

<script> 
   function createPerson(firstName, lastName) { 
       return { 
           firstName: firstName, 
           lastName: lastName, 
           getFullName() { 
               return firstName + ' ' + lastName; 
           } 
       } 
   } 
   let name = createPerson('This is a', 'named function!'); 
     
   console.log(name.getFullName()); 
</script> 

输出:

This is a named function!

匿名函数和命名函数的区别:

匿名函数 带名称的函数
在JavaScript中,匿名函数(函数表达式)是指在没有名称或标识符引用的情况下生成的函数;它们的定义如下: function(){ // 函数体 } 带有名称或标识符引用的普通函数(函数声明)被称为带名称的函数,其定义如下: function displayMessage(){ // 函数体 }
匿名函数不会被提升(在编译时加载到内存中)。 带名称的函数会被提升(在编译时加载到内存中)。
在调用匿名函数时,只能在声明行之后调用它。 可以在声明之前调用带名称的函数。
在ES6之前,匿名函数的名称属性设置为空字符串。 在ES6之前,带名称的函数的名称属性设置为它们的函数名。
为了更简单地编程,匿名函数允许上下文作用域。当函数被用作数据时,应使用箭头函数。 因为函数名出现在错误日志中,带名称的函数在调试和确定哪个函数产生错误方面非常有用。
在开发IIFE(立即调用的函数表达式)时,匿名函数非常方便。 带名称的函数更容易重用,有助于创建干净的代码。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程