匿名函数

  • 匿名函数就是指的没有名字的函数
  • 在创建中将函数赋值给一个变量
    1
    2
    3
    4
    5
    // 我们通常创建函数有两个方式。利用Function创建这里不谈
    // 普通函数
    function fn (){}
    // 命名函数 => 函数表达式
    const fn = function(){}

自执行函数

  • 自执行即函数创建完成即调用
    • 必备条件是一个表达式
    • 命名函数也就是一个表达式
  • 理论上函数后面加一个()函数就会执行
  • 但是由于浏览器引擎的规定 必须是一个表达式才会执行 否则就会报错
    • 常见的这些符号都是表达式
    • = + - * / && || true false () ~ new
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      +function test(){ }()
      // 函数表达式直接就能跟() 因为他就是表达式
      var a = function () {
      console.log('--');
      }();
      // w3c推荐
      (function () {
      console.log('-');
      }())
      // 常用
      ;(function () {
      console.log('--');
      })()

es3利用自执行函数构建的模块

1
2
3
4
5
6
7
8
9
10
11
12
13
const utilModules = ((Function) => {
function Utils(){
this.name = name;
this.age = age;
}
Utils.prototype.sayHi = function () {
console.log('hello')
}
window.Utils = Utils
return {
Utils
}
})(Function);