Tod*_*nce 2 javascript function
所以我理解函数名只是指向实际函数的指针.
function justAPointer() { //do something }
Run Code Online (Sandbox Code Playgroud)
我可以更改指针名称:
justAPointer = 'oops';
Run Code Online (Sandbox Code Playgroud)
现在该功能仍然存在,但还有什么方法可以达到它吗?
该函数仅在某些内容引用时仍然存在.否则,收集垃圾就像你的代码可能分配的任何东西一样.
如果您创建一个对象:
var obj = { hello: "world" };
Run Code Online (Sandbox Code Playgroud)
然后将"obj"重新分配给其他内容:
obj = 22;
Run Code Online (Sandbox Code Playgroud)
然后那个对象同样是垃圾.当然,同样地,如果提供了参考文献的副本,它仍然是:
var obj = { hello: "world" };
var copy = obj;
obj = 22;
Run Code Online (Sandbox Code Playgroud)
那么显然"复制"仍然指的是对象.功能真的没有任何不同.
编辑 - SLaks在评论中指出,有些方法可以在某些地方存放对函数的引用,以确保对象(或函数)的持续"活着",甚至虽然丢失了对对象(或函数)的访问权限.一个例子是setTimeout()功能.传递给该API的函数对象将保持活动状态,直到计时器关闭,但如果您的代码没有保留该函数的其他链接,则无法从运行时系统中获取引用.对于可能与DOM元素相关联的对象,存在(或曾经)类似的情况.这导致(并且可能仍然导致;我非常冒险)问题在于某些浏览器中的DOM垃圾收集器(猜测)不知道如何释放JavaScript分配的存储.
| 归档时间: |
|
| 查看次数: |
68 次 |
| 最近记录: |