函数的定义与调用

78 阅读1分钟

函数的定义与调用

    1. 定义
      • => 在堆内存开一个空间
      • => 将函数的函数体内的代码 保存到堆内存中
      • => 将堆内存的地址保存在变量名(函数名),最后将这个变量名存储在栈内存中
    1. 调用
      • => 根据变量名(函数名)中的地址,找到对应的函数
      • => 然后在调用栈中开一个新的空间(函数的执行空间)
      • => 在执行空间中 对函数的形参进行赋值
      • => 在执行空间中 进行变量的预解析
      • => 在执行空间中 执行函数的代码
      • => 销毁当前函数的执行空间

永不销毁的执行空间

    * 1. 正常书写一个函数
     * 2. 在这函数内 向外返回一个 引用数据类型
     * 3. 当满足上述条件时,这个函数的执行空间将不会被销毁
    function fn() {
      // var a = 100
      const obj = {
        name: 'fn函数的name',
        age: '不知道'
      }
      return obj
    }
   const newObj =  fn()
   console.log(newObj)