add:垃圾回收机制

This commit is contained in:
qianguyihao 2019-02-02 21:19:53 +08:00
parent fd9669c9f1
commit 54d3e5b676
3 changed files with 55 additions and 18 deletions

View File

@ -135,3 +135,12 @@ arguments里边有一个属性叫做callee这个属性对应一个函数对
```
## 我的公众号
想学习<font color=#0000ff>**代码之外的技能**</font>?不妨关注我的微信公众号:**千古壹号**id`qianguyihao`)。
扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外:
![](http://img.smyhvae.com/2016040102.jpg)

View File

@ -251,3 +251,12 @@ json 采用 `for...in...`进行遍历,和数组的遍历方式不同。如下
![](http://img.smyhvae.com/20180203_1518.png)
## 我的公众号
想学习<font color=#0000ff>**代码之外的技能**</font>?不妨关注我的微信公众号:**千古壹号**id`qianguyihao`)。
扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外:
![](http://img.smyhvae.com/2016040102.jpg)

View File

@ -155,29 +155,29 @@ per1 = [object Object]
//方式一:重写 Person 原型的toString方法。针对 Person 的所有实例生效
Person.prototype.toString = function() {
return (
"Person[name=" +
this.name +
",age=" +
this.age +
",gender=" +
this.gender +
"]"
);
return (
"Person[name=" +
this.name +
",age=" +
this.age +
",gender=" +
this.gender +
"]"
);
};
// 方式二:仅重写实例 per1 的 toString方法。但是这种写法只对 per1 生效, 对 per2 无效
/*
per1.toString = function() {
return (
"Person[name=" +
this.name +
",age=" +
this.age +
",gender=" +
this.gender +
"]"
);
return (
"Person[name=" +
this.name +
",age=" +
this.age +
",gender=" +
this.gender +
"]"
);
};
*/
@ -202,3 +202,22 @@ per2 = Person[name=vae,age=30,gender=男]
从这个例子,我们可以看出 `prototype` 的作用。
## JS的垃圾回收GC机制
程序运行过程中会产生垃圾,这些垃圾积攒过多以后,会导致程序运行的速度过慢。所以我们需要一个垃圾回收的机制,来处理程序运行过程中产生垃圾。
当一个对象没有任何的变量或属性对它进行引用时,此时我们将永远无法操作该对象,此时这种对象就是一个垃圾,这种对象过多会占用大量的内存空间,导致程序运行变慢,所以这种垃圾必须进行清理。
上面这句话,也可以这样理解:如果堆内存中的对象,没有任何变量指向它时,这个堆内存里的对象就会成为垃圾。
JS拥有自动的垃圾回收机制会自动将这些垃圾对象从内存中销毁。我们不需要也不能进行垃圾回收的操作。我们仅仅需要做的是如果你不再使用该对象那么将改对象的引用设置为 null 即可。
## 我的公众号
想学习<font color=#0000ff>**代码之外的技能**</font>?不妨关注我的微信公众号:**千古壹号**id`qianguyihao`)。
扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外:
![](http://img.smyhvae.com/2016040102.jpg)