js函数生命周期
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js函数生命周期相关的知识,希望对你有一定的参考价值。
我初学javascript 以前没学过c和java 之类的 遇到生命周期这个词 网上也查了c和java的大概定义 但还是不是很明白 这个生命周期是怎么定义的 可以通俗点说吗 有什么用 可以举个例子最好了 感激不尽 谢谢各位大侠了
老师讲课内容:
函数生命周期:
1. 开始执行前:
创建执行环境栈(数组): 临时保存正在执行的函数的执行环境
向执行环境栈中压入第一个默认函数main()
创建全局作用域对象window
2. 定义函数时:
创建函数对象,封装函数定义
声明函数名变量,引用函数对象
函数对象的scope属性引用回创建函数时的作用域
3. 调用函数时:
ECS中压入一个新的元素(执行环境)记录新函数的调用
创建一个活动对象,保存本次函数调用用到的局部变量
ECS中的新执行环境元素,引用活动对象
活动对象中的parent属性引用函数的scope指向的父级作用域对象
执行过程中: 优先使用活动对象中的局部变量
局部没有,才延parent向父级作用域找
4. 函数调用后:
执行环境栈中本次函数的执行环境出栈
导致活动对象被释放
导致局部变量一同释放
图示:
参考技术A 个人理解函数生命周期就是函数的作用范围即作用域的问题,js里的函数可能只在这一个js里有用、还可能在其他地方也可以用。不过我对javascript不太熟,不知道有没有帮到你! 参考技术B js程度的生命周期是从浏览器发出请求到再次刷新或跳转页面这个时间段,生命周期结束后,js定义的变量和对象绝大部分会被注销,资源得到释放本回答被提问者采纳 参考技术C javascript 啊,页面打开就有了,页面关掉就没了追问那函数周期在js中有什么作用吗 没有不同的情况或特例吗
追答应该没有吧,我做了几年js,也没搞过这些没啥用的概念
参考技术D JS中,函数分成很多种,因为JS本身是弱数据类型语言导致很多语法不够明确有二义性。<script>
function a()
</script>
这样子的函数就属于全局的函数,那么就是属于楼上兄弟说的开页面就有,关页面就没的状态。
<script>
function a()
function b();
</script>
而这种写法呢,b方法是只有当a被实例化时才有的一个方法,而且外部是不能访问的,类似一个私有方法。
建议参考《javascript权威指南》一书中的对应章节,讲的很明确,自己再做几个小实验就清楚了
以上是关于js函数生命周期的主要内容,如果未能解决你的问题,请参考以下文章