JavaScript好文推荐(持续更新)

学习是个探索的过程,在前行的路上已经有先行者为我们填平了一些坑坑洼洼。要不断的提高自己,我们需要站在巨人的肩膀上。

1、深入理解JavaScript之执行上下文

    当javascript代码文件被浏览器载入后,默认最先进入的是一个全局的执行上下文。当在全局上下文中调用执行一个函数时,程序流就进入该被调用函数内,此时引擎就会为该函数创建一个新的执行上下文,并且将其压入到执行上下文堆栈的顶部。浏览器总是执行当前在堆栈顶部的上下文,一旦执行完毕,该上下文就会从堆栈顶部被弹出,然后,进入其下的上下文执行代码。这样,堆栈中的上下文就会被依次执行并且弹出堆栈,直到回到全局的上下文。

上述第一个阶段的具体过程如下:
找到当前上下文中的调用函数的代码

在执行被调用的函数体中的代码以前,开始创建执行上下文

进入第一个阶段-建立阶段:

  • 建立variableObject对象:

    1. 建立arguments对象,检查当前上下文中的参数,建立该对象下的属性以及属性值

    2. 检查当前上下文中的函数声明:

      • 每找到一个函数声明,就在variableObject下面用函数名建立一个属性,属性值就是指向该函数在内存中的地址的一个引用

      • 如果上述函数名已经存在于variableObject下,那么对应的属性值会被新的引用所覆盖。

    3. 检查当前上下文中的变量声明:

      • 每找到一个变量的声明,就在variableObject下,用变量名建立一个属性,属性值为undefined。

      • 如果该变量名已经存在于variableObject属性中,直接跳过(防止指向函数的属性的值被变量属性覆盖为undefined),原属性值不会被修改。

  • 初始化作用域链

  • 确定上下文中this的指向对象

第二阶段代码执行阶段:

    执行函数体中的代码,一行一行地运行代码,给variableObject中的变量属性赋值。

原文地址:http://www.360weboy.com/frontdev/javascript/execution-context.html

2、深入理解Javacript之Prototype

推荐文章:

(1)http://www.360weboy.com/frontdev/javascript/javascript_prototyp.html 

(2)http://www.laruence.com/2009/05/28/863.html

原文地址:https://www.cnblogs.com/wuzy/p/3099684.html