博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javascript的“上下文”(context)
阅读量:5818 次
发布时间:2019-06-18

本文共 1436 字,大约阅读时间需要 4 分钟。

一:JavaScript中的“上下文“指的是什么
百科中这样定义:
上下文是从英文context翻译过来,指的是一种环境。
在软件工程中,上下文是一种属性的有序序列,它们为驻留在环境内的对象定义环境。
在对象的激活过程中创建上下文,对象被配置为要求某些自动服务,如同步、事务、实时激活、安全性等等。又比如计算机技术中,相对于进程而言,上下文就是进程执行时的环境。
具体来说就是各个变量和数据,包括所有的寄存器变量、进程打开的文件、内存信息等。
 

JavaScript的执行上下文的理解是一种大概模糊的理解(译者)。

上下文的原意是content,而作用域的原意是scope。
 
scope指的是 函数被调用的时候, 各个变量的作用区域
content指的是 函数被调用的时候, 查看this指向哪个object, 那么那个
object 就是当前的 "上下文"。
 
反正我的理解就是:当前执行环境的作用域,因为“上下文”如果离开了执行环境就没有啥实际意义了。
 
二:JavaScript的两个阶段都干了啥
(1)预“编译”阶段(一定要注意,这个编译,不是编译成机器码的编译):
          浏览器的JavaScript引擎“解析”JavaScript代码。
          建立arguments对象(隐藏对象,不可见),函数,参数,变量
          建立作用域链
          确定this的值(或者说指向)
 
 (2)代码执行阶段
            浏览器的JavaScript引擎一步步执行代码段,从上至下。
            给变量赋值,确定函数的引用。
 
三:具体代码分析
function foo(z){    var a="Hi";    var b=function(){        };    function c(){            }} foo("zqz")
 
预“编译”阶段:
    z—>undefined
    a—>undefined;
    b—>undefined;
    c—>function (){}
 
执行阶段:
    z—>"zqz";
    a—>"Hi";
    b—>function (){};
    c—>function c(){}
 
    
这里面还有个问题:构建执行环境作用域时,arguments对象(隐藏对象,不可见),函数,参数,变量的声明与构建有先后顺序。
arguments对象(隐藏对象,不可见)—>函数—>参数—>变量
 
function foo(z){    console.log(a);    console.log(b);    var a = 'Hi';    var b = function() {            };    function a() {    }    console.log(a);    console.log(b);}foo("zqz")
结果:function a(){}    
            undefined    //是变量声明
            Hi
            function b(){}
按顺序走一遍:arguments—>function a(){}—>z—>var a='Hi';var b=function(){}
 
可以结合这篇文章看:

 
 

无特殊声明的文章均为原创!

原创文章如若转载,请注明出处!http://www.cnblogs.com/zqzjs/

告诫自己即使再累,也不要忘记学习。成功没有捷径可走,只有一步接着一步走下去!

转载于:https://www.cnblogs.com/xiaocai0923/p/7504154.html

你可能感兴趣的文章
数据分析相关
查看>>
无插件用Terminal/TotalTerminal的开当前finder位置
查看>>
Oracle优化器
查看>>
【转】 纯技术帖:MMOG网络同步算法揭秘
查看>>
mysql乱码处理一则
查看>>
cf #345 div2 C(Vasya and String。双端队列)
查看>>
Python LDAP中的时间戳转换为Linux下时间
查看>>
微信小程序蓝牙连接小票打印机
查看>>
决策树算法
查看>>
环境错误2
查看>>
spring下的多线程
查看>>
C++_了解虚函数的概念
查看>>
全新jmeter视频已经上架
查看>>
Windows 8下如何删除无线配置文件
查看>>
解决Windows 7中文件关联和打开方式
查看>>
oracle系列(五)高级DBA必知的Oracle的备份与恢复(全录收集)
查看>>
Hyper-V 2016 系列教程24 配置 iSCSI存储服务器
查看>>
hp 服务器通过串口重定向功能的使用
查看>>
国外10大IT网站和博客网站
查看>>
C#窗体控件更新(六)
查看>>