函数的定义与调用
-
- 定义
- => 在堆内存开一个空间
- => 将函数的函数体内的代码 保存到堆内存中
- => 将堆内存的地址保存在变量名(函数名),最后将这个变量名存储在栈内存中
- 定义
-
- 调用
- => 根据变量名(函数名)中的地址,找到对应的函数
- => 然后在调用栈中开一个新的空间(函数的执行空间)
- => 在执行空间中 对函数的形参进行赋值
- => 在执行空间中 进行变量的预解析
- => 在执行空间中 执行函数的代码
- => 销毁当前函数的执行空间
- 调用
永不销毁的执行空间
* 1. 正常书写一个函数
* 2. 在这函数内 向外返回一个 引用数据类型
* 3. 当满足上述条件时,这个函数的执行空间将不会被销毁
function fn() {
// var a = 100
const obj = {
name: 'fn函数的name',
age: '不知道'
}
return obj
}
const newObj = fn()
console.log(newObj)