<万博manbetx平台> 通过执行上下文来跟踪函数的运行 - JavaScript 经典案例 - 万博manbetx平台中文网
点击切换帐号登陆
帐号密码登陆

通过执行上下文来跟踪函数的运行

# 3. 通过执行上下文来跟踪函数的运行

**知识点**
- 执行上下文

----------------------------------------

## 执行上下文
- `JS`内部使用`执行上下文`来跟踪函数的执行
- `JS`使用调用栈`call stack`做为函数执行上下文栈来跟踪运行状态

----------------------------------------

### code/demo03.万博manbetx平台

```万博manbetx平台
<!DOCTYPE 万博manbetx平台>
<万博manbetx平台>
<head>
    <meta charset="UTF-8">
    <title>通过执行上下文来跟踪函数的运行</title>
</head>
<body>
<script>
    // 牢记: js中,代码执行的基本单元,应该是函数,使代码复用,维护变得更轻松
    // 每一行语句不是位于全局,就是位于函数内,不管在哪里,都位于特定作用域内,都有特定上下文(执行环境)
    // 全局上下文: 有且只有一个,记不消失,除非关闭页面
    // 函数上下文: 每次调用时都后创建, 使用变量对象来表示(包含上下文中的变量和函数)
    // js内部使用 "执行上下文"  来跟踪函数的执行, 使用"执行上下文栈(调用栈)"来跟踪
    // 栈是一种添加与删除只能在一端进行的特殊列表,非常适合于管理代码的运行顺序

    // 之前,变量只存在于函数作用域,全局变量实际上全局对象的属性,ES6实现了块级作用域,修改了这个世纪大Bug

    function outer(n) {
        let num = n;
        function inner(m) {
            return num + m;
        }
        return inner;
    }

    let func = outer(10);

    // 此时调用会形成闭包
    // 闭包就像是inner函数的小金库, 只要是与它同处一个词法作用域内的可见成员,全部被它金屋藏娇,收入囊中,这个金屋就是闭包
    // inner函数非常十珍爱它的小金库,随身携带,寸步不离,哪怕在光天化日的全局环境下调用它, 它还是能偷偷访问自己的小金库中的数据

    let result = func(20);
    console.log( result );
</script>
</body>
</万博manbetx平台>
```


任务

?不会了怎么办
无数据提示暂无评论哟...
网站导航
标签地图
学习路径
视频教程
开发软件
旗下子站
技术文章
文档工具
关于我们
企业合作
人才招聘
联系我们
讲师招募
QQ交流群
QQ官方交流群
微信公众号
微信公众号