javascript - js 函数的一点小问题求解

查看:66
本文介绍了javascript - js 函数的一点小问题求解的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

js的函数名既然是函数对象的一个指针,那么是引用的是内存吗?
`

        var a=function(c){
            return  ++c;
        }
        console.log(a(1));

        var b=a;
        console.log(b(1));

        var a=null;
        console.log(b);
        console.log(b(1));

` ,那么如何做手动销毁呢?全局变量是不是需要关闭浏览器才会回收?求解谢谢

解决方案

首先var a会在stack里面开一块空间,然后你将他赋给一个function,是一个引用类型,于是又在heap里面又申请一块空间存放function,此时,stack里面的a存放的是function的地址

而下面,将b赋值给a,是将stack里面a指向的heap里面function的地址赋给b,所以这就是为什么后来a指向了null,但是b仍然指向之前heap里面function的原因。

如何销毁?将b也设置为null或者其他值就好了。所以这种变量尽量不要写全局的,写局部变量。

这篇关于javascript - js 函数的一点小问题求解的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆