首先来比较一下以下两个例子编程
- function f1(name){
- //函数体
- }
- var f1 = function(name){
- //函数体
- };
你们会想到什么,首先前者是指函数声明,后者是指函数表达式,他们之间的区别是前者会在代码执行以前被JS解释器加载到做用于中,这样一来就能够在编程时在定义函数以前调用这个函数,此法是有效的;然后者则是在代码执行到那一行时候才会有定义,此外函数表达式是建立了一个匿名函数,而后将匿名函数赋值给一个变量。‘闭包
接下来谈谈闭包和匿名函数的区别:ide
闭包是指有权访问另外一个函数做用域之中的变量的函数,例如在一个函数内部建立另外一个函数,代码以下函数
- function get(){
- var name = "CTO";
- function ret(){
- name = "UFO";
- }
- ret();
- return name;
- }
匿名函数是指没有没有名字的函数。spa
注意:闭包能够看作是匿名函数运用的一个子集。作用域