在执行JS代码时候,可以看成是在执行一个全局函数的代码,在这个全局函数的代码体中又有可能执行了很多个局部函数。 JS中在执行函数的时候会为函数创建一个执行的上下文用来保存在函数中创建的变量等数据,当函数执行完之后会销毁创建的该执行上下文。 这个执行上下文,不是一个对象,因为它只是在栈中开辟了一块内存 ...
分类:
Web程序 时间:
2020-02-01 12:56:29
阅读次数:
90
5.1 变量的作用域复习 变量根据作用域的不同分为两种:全局变量和局部变量。 1. 函数内部可以使用全局变量。 2. 函数外部不可以使用局部变量。 3. 当函数执行完毕,本作用域内的局部变量会销毁。 5.2 什么是闭包 闭包 (closure):指有权访问另一个函数作用域中的变量的函数。 简单理解就 ...
分类:
其他好文 时间:
2020-01-23 22:42:41
阅读次数:
75
一、对象生命周期管理 一般的对象,new之后,使用完毕后就会销毁 如果你声明static之后,在作用域下,是不会销毁的 示例:对接第三方时,Token一般会有一个持续时间,那么在第一次获取 Token 后,我们需要保留这个Token,直到它过期后再重新获取。这时,这个Token需要被声明为stati ...
分类:
Web程序 时间:
2019-11-04 19:52:17
阅读次数:
157
当我们在组件间切换的时候,Angular都会销毁上一个组件,并且创建一个新的组件。在大多数情况下,我们可能不想让它这样工作,因为每次加载一个组件,可能会有很多类似HTTP请求一样的昂贵的操作。
这时候就需要RouteReuseStrategy了。 ...
分类:
其他好文 时间:
2019-11-01 14:26:24
阅读次数:
91
关键词assign、strong、copy、weak、unsafe_unretained 影响: 是否开辟新的内存 是否有引用计数增加 strong 指向并拥有该对象。其修饰的对象引用计数会 +1,该对象只要引用计数不为 0 就不会销毁,置为 nil 可以销毁它。一般用于修饰对象类型、字符串、集合类 ...
分类:
移动开发 时间:
2019-09-19 19:40:40
阅读次数:
113
上一篇我们主要讲解了函数的执行过程和原理,本篇我们将介绍函数的另外两个特殊表现:闭包和立即执行函数。 一 闭包 1, 闭包的形成 之前我们提到,函数执行完毕,马上就会销毁自己的AO对象。但是如果遇到下面这种情况:有子函数的定义,并将子函数返回。它真的就完全销毁了自己的AO对象吗? 这将打印什么呢?表 ...
分类:
编程语言 时间:
2019-09-06 13:09:06
阅读次数:
84
Static关键字 1. 全局静态变量 内存中位置:静态存储区,且程序运行期间一直存在。 未经初始化的全局静态变量自动初始化为0。 全局静态变量在声明文件之外是不可见的。 2.局部静态变量 内存中位置:静态存储区。 未初始化自动初始化为0。 作用域为局部作用域,但离开作用域后不会销毁,仍然驻留在内存 ...
分类:
编程语言 时间:
2019-08-28 17:14:51
阅读次数:
138
执行环境 js的执行环境就是:定义了变量或函数有权访问的其他数据,决定了它们各自的行为。每个环境都有一个与之相关联的对象,环境中定义的变量和函数都保存在这个对象中。 全局变量就是最外围的环境,通常被认为是window对象。全局变量和局部变量会在环境栈中,当执行环境在执行完环境中的所有代码后会销毁,环 ...
分类:
Web程序 时间:
2019-07-28 17:53:24
阅读次数:
107
循环中释放容器时调用Dispose()方法会销毁对象,导致容器的个数变化。 foreach (var ctl in this.flowLayoutPanel1.Controls) { (ctl as Control).Click -= btnClick; (ctl as Control).Dispo ...
线程池的使用 一丶什么是线程池 为了避免系统频繁的创建和销毁线程, 需要将创建好的线程"存储"管理起来复用, 可以形象的理解为"池子", 当需要线程时, 则向线程池申请一个线程, 用完之后,并不会销毁, 而是将线程归还给线程池, 减少线程的创建和销毁. 二丶为什么需要线程池 1) 多线程虽然可以提高 ...
分类:
编程语言 时间:
2019-07-04 00:35:51
阅读次数:
125