闭包

"Hello World, Hello Blog"

Posted by wudimingwo on December 15, 2018

当内部函数被保存到外部时,将会生成闭包。

闭包会导致原有作用域链不释放,造成内存泄露。

闭包的作用 一、实现私有变量

1
2
3
4
5
6
7
8
9
10
11
12
13
累加器

function add () {
    var count = 0;
    return function () {
    count++;
    console.log(count);
    return count;
  }
}
var count = add();

我现在都感觉嵌套一个函数,然后进行定义才是标准的定义方式了

我现在都感觉嵌套一个函数,然后进行定义才是标准的定义方式了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
正常版本
var a = 123;
嵌套版本
function fun () {
  var a = 123;
  return a;
}
var a = fun();

正常版本
Person.prototpe = {};
function Person(){};
var person = new Person();
嵌套版本
function fun () {
  Person.prototpe = {};
  function Person(){};
  return Person;
}
var Person = fun();
var person = Person();

这么嵌套有有好处嘛?
应该是有的,起码定义的变量放进函数里后,复用性变强了吧?
而且有时,我们想要互不影响的两个完全一样的"实例"时,可能有帮助,
具体有什么好处我知道,
但能让我产生一种观点,
所有的变量,都可以是 经过fun()执行得来的.
或者说,我们应该尽快让自己熟悉这种函数的嵌套.
因为对数组和对象的基本操作,还是比较简单的,
就算是嵌套结构也比较好理解.(难的可能是算法)

而函数的嵌套,就非常的灵活,形态也可以有很多种,
并且能够实现很多不同的功能.
函数的嵌套使用,才是神奇产生的源头?

’’'’不能叫定义形态,和执行形态,,应该叫函数声明,和函数表达式’’’’