当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Javascript Anonymous和Named的区别用法及代码示例


JavaScript 或任何编程语言中,函数、循环、数学运算符和变量是最广泛使用的工具。本文将告诉您匿名函数和命名函数之间的区别。我们将在本文中讨论了解命名函数和匿名函数的所有必需概念。

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

用法:

function(){
   // Function Body
}

我们通过例子来理解一下。

示例1:在此示例中,我们构建了一个匿名函数,用于将消息打印到控制台。之后,该函数被保存在测试变量中。我们可以通过调用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 关键字,后跟可用作该函数回调的名称。具有名称或标识符的普通函数称为命名函数。它们可以在表达式中使用或在语句中声明。函数的名称存储在函数体内,这很方便。我们可以使用该名称来获取一个函数来调用自身,或者像每个对象一样检索其属性。

用法:

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!

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

Anonymous functions

Named Functions

在 JavaScript 中,匿名函数(函数表达式)是指那些没有名称或标识符来引用的函数;它们被定义为:

function(){

//函数体

}

具有名称或标识符来引用它们的普通函数(函数声明)称为命名函数,定义为:

函数displayMessage(){

//函数..主体

}

匿名函数永远不会被提升(在编译时加载到内存中)。 命名函数被提升(在编译时加载到内存中)。
调用匿名函数时,只能在声明行之后调用。 可以在声明之前调用名称函数。
在 ES6 之前,匿名函数的名称属性被设置为空字符串。 在 ES6 之前,命名函数的名称属性被设置为其函数名称。
为了更容易编程,匿名函数允许上下文范围。当函数用作数据时,应使用箭头函数。 由于函数名称出现在错误日志中,因此命名函数在调试和确定哪个函数产生错误时非常有用。
开发 IIFE(即时调用函数表达式)时,匿名函数非常方便。 命名函数更容易重用,这有助于创建干净的代码。


相关用法


注:本文由纯净天空筛选整理自deathmukh大神的英文原创作品 Difference between Anonymous and Named functions in JavaScript。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。