JavaScript 函数声明、函数定义、匿名函数和闭包的区别

 首先来比较一下以下两个例子编程

 

  
  
  
  
  1. function f1(name){  
  2. //函数体 
  3. var f1 = function(name){ 
  4. //函数体 
  5. };

你们会想到什么,首先前者是指函数声明,后者是指函数表达式,他们之间的区别是前者会在代码执行以前被JS解释器加载到做用于中,这样一来就能够在编程时在定义函数以前调用这个函数,此法是有效的;然后者则是在代码执行到那一行时候才会有定义,此外函数表达式是建立了一个匿名函数,而后将匿名函数赋值给一个变量。‘闭包

接下来谈谈闭包和匿名函数的区别:ide

闭包是指有权访问另外一个函数做用域之中的变量的函数,例如在一个函数内部建立另外一个函数,代码以下函数

 

  
  
  
  
  1. function get(){ 
  2.   var name = "CTO"
  3.   function ret(){ 
  4.     name = "UFO"
  5.  } 
  6.  ret(); 
  7.  return name; 

匿名函数是指没有没有名字的函数。spa

注意:闭包能够看作是匿名函数运用的一个子集。作用域

相关文章
相关标签/搜索