ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

js高级-函数的作用域/执行上下文

2021-12-31 12:35:26  阅读:93  来源: 互联网

标签:上下文 函数 作用域 js window 全局 执行 赋值


 

1.变量提升的引入

 

 

 那么到底是什么机制产生了变量提升,为什么需要变量提升hoist呢?

 

2.执行上下文

 

(1)全局执行上下文

  • 在执行全局代码前,将window确定为全局执行上下文==>也就是全局对象
  • 对全局数据进行预处理  
    • var 定义的全局变量 == > undefined,添加到window对象上作为其属性
    • function声明的全局函数 == > 直接赋值,添加为window的方法
    • this == > 直接赋值为window ,可以通过它调用window上的属性和方法
  • 执行全局代码

(2)局部执行上下文(函数执行上下文)

  • 在调用函数时,准备执行函数体之前==>创建一个对应的函数执行上下文对象
  • 对局部参数进行预处理
    • 形参变量 ==> 赋值(接收的实参) == >添加为执行上下文的属性
    • arguments ==> 赋值(接收的实参列表) == >添加为执行上下文属性
    • 在函数内部var定义的局部变量 == > undefined ==> 变量提升 ==>添加为执行上下文属性
    • 在函数内部声明的函数 ==> 赋值(fun),添加为执行上下文方法
    • this ==> 赋值(调用函数的对象)
  • 开始执行函数体代码

标签:上下文,函数,作用域,js,window,全局,执行,赋值
来源: https://www.cnblogs.com/zuobolan/p/15752602.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有