当前位置: 移动技术网 > IT编程>开发语言>JavaScript > 分享几道js内存相关的练习题

分享几道js内存相关的练习题

2019年01月16日  | 移动技术网IT编程  | 我要评论

js内存相关题

引用自身

//错误实例
var a = {self : a};     //这样a.self会是undefined

//上面这样等于
var a;                  //undefined
a.self = a              //这时a还是undefined

//正确写法
var a = {};
a.self = a;            //这样a.self就等于它自己

注意新旧地址

var a = {n:1};
var b = a;

//这一行运行的时候先运行a = {n:2},相当于给了a一个新地址
//再运行a.x = a,相当于把新地址赋给了旧地址上对象一个x属性
a.x = a = {n:2}  

//然而有了新地址的a并没有x属性
alert(a.x);       // undefined
//b是引用的a的旧地址,所以b有
alert(b.x);       // [object,object]

垃圾、垃圾回收

var a = function(){};
var a = null;

/*这样上面那个function因为没有被任何东西引用,所以function占的内存就是垃圾,
会被浏览器回收*/

下面的function是垃圾吗?

var fn = function(){};
document.body.onclick = fn;
fn = null;
// 不是,因为document.body.onclick = fn;还在引用

想要function变成垃圾可写document.body.onclick = null;

若是把页面关了,就相当于document不存在了,于是这时body、onclick、function都是垃圾,浏览器会把它们回收。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网