JavaScript中作用域链与执行环境的介绍(图文)
程序员文章站
2022-04-15 12:59:34
...
本篇文章给大家带来的内容是关于JavaScript中作用域链与执行环境的介绍(图文),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
每一个函数存在一个[[Scope]]内部属性,包含了一个函数被创建得作用域中对象得集合,这个集合为函数得作用域链。例如下面的全局函数:
fucntion add(num1, num2){ var sum = num1 + num2; return sum; }
当函数add被创建时,它的作用域链中便插入了一个对象变量,里面包含所有在全局范围内定义的变量。
函数add的作用域会在函数执行时用到,函数每次执行都会创建一个执行环境的内部对象,每个执行环境都有自己的作用域链。函数运行时,一个被称为活动对象的新对象就为执行环境创建好了,里面包含了函数的所有局部变量,命名参数,参数集合以及this。假设执行var total = add(5,10),其对应的作用域链如下:
函数执行过程中,变量的查找时从作用域头部开始查找,如果找到就是使用改变量的值。如果找不到就继续从作用域下一个对象查找,直到找到改变量。如过匹配不到,则为undefined。当频繁使用全局变量时,可以先使用一个局部变量保存起来,之后直接访问局部变量可以减少查找次数提高效率。例如:
function initUI(){ var doc = document, bd = doc.body, links = doc.getElementsByTagName("a"); .... }
当函数执行完成,活动对象也会随之销毁。但闭包时,活动对象并不会销毁。这也是为什么闭包占用内存大的原因。
以上就是JavaScript中作用域链与执行环境的介绍(图文)的详细内容,更多请关注其它相关文章!
上一篇: php fgetcsv读取csv文件代码
下一篇: php导出数据到csv文件
推荐阅读
-
结合代码图文讲解JavaScript中的作用域与作用域链
-
javascript作用域链与执行环境详解
-
结合代码图文讲解JavaScript中的作用域与作用域链
-
javascript 作用域链与执行环境
-
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解_基础知识
-
JavaScript执行环境和作用域(链)的那些事
-
浅谈javascript中执行环境(作用域)与作用域链
-
js 函数的执行环境和作用域链的深入解析_javascript技巧
-
ES5中执行环境和作用域的详细介绍(代码示例)
-
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解_基础知识