如何在JS中释放使用new ActiveXObject创建的对象

JavaScript09

如何在JS中释放使用new ActiveXObject创建的对象,第1张

1、首先在电脑中打开js,使用new Date()可以获得当前的时间,代码如下。

2、当向new Date()传入指定的时间参数时,new Date()就不再是当前的时间了,而是新创建的一个时间。

3、当向new Date()传入两位数年份的参数时,将会解析成19XX年,例如,下面例子时间将是1999年5月24日。

4、当向new Date()传入一个整数参数时,整数将被当作毫秒数来使用,日期将是1970年1月1日加上毫秒数的时间。

5、最后使用new Date()创建的时间,可以使用getDate()方法获得当前时间的日,即1日至31日,下面代码执行的结果为28,如下图所示就完成了。

所以要让JavaScript引擎有机会释放掉某个对象,就得确保整个程序里已经没有对那个对象的活引用。 前面有人提到delete运算符,它可以用来删除变量或属性,但并不直接涉及删除/释放对象。如果指向某个对象的活引用当中有全局变量或别的对象的属性,那用delete来删除掉那些变量或属性自然是有助减少活引用的个数。

老师讲课内容:

函数生命周期:

1. 开始执行前:

创建执行环境栈(数组): 临时保存正在执行的函数的执行环境

向执行环境栈中压入第一个默认函数main()

创建全局作用域对象window

2. 定义函数时:

创建函数对象,封装函数定义

声明函数名变量,引用函数对象

函数对象的scope属性引用回创建函数时的作用域

3. 调用函数时:

ECS中压入一个新的元素(执行环境)记录新函数的调用

创建一个活动对象,保存本次函数调用用到的局部变量

ECS中的新执行环境元素,引用活动对象

活动对象中的parent属性引用函数的scope指向的父级作用域对象

执行过程中: 优先使用活动对象中的局部变量

局部没有,才延parent向父级作用域找

4. 函数调用后:

执行环境栈中本次函数的执行环境出栈

导致活动对象被释放

导致局部变量一同释放

图示:

前三步

第四步