Myfunc=_emptyFunc vs Myfunc=null
Myfunc=_emptyFunc vs Myfunc=null
如果我想释放一个名为Myfunc
的函数完成此类任务的最佳方法是什么?
_emptyFunc=function(){}
_emptyFunc
在调用null
抛出TypeError
时是可调用的:
js> _emptyFunc=function(){}
(function () {})
js> _nullFunc=null;
null
js> _emptyFunc()
js> _nullFunc()
typein:5: TypeError: _nullFunc is not a function
因此,使用 no-op 函数的优点是,您可以简单地无条件调用它,而不必检查它是否不是 null/undefined,甚至可能测试它是否是可调用的。
使用 null
或 undefined
的优点是,代码可以避免仅在传递回调时才需要执行的操作。
如果您实际上计划允许 JS 引擎释放之前存储在变量中的任何函数使用的内存,请将其设置为 null
。分配不同的函数也会删除(可能)对该函数的最后一个引用,从而允许 GC 收集它,但你会有一个显然也会使用一些内存的新函数。
将 MyFunc 设置为 null,这将导致 GC 收集函数对象(如果没有更多可访问的引用)。一般来说,你不需要做这样的事情。
- 第一个是可调用的
- 第二个将导致类型错误异常。
希望有帮助。
相关文章:
- 数组在递归方法中设置为null
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 无法获取属性'selectedIndex'的未定义引用或null引用
- Meteor方法在客户端返回null,在客户端运行的相同方法返回正确的值
- 来自文本输入null的html javascript变量
- delete在Object上效率低下,但在DOM Element's的数据属性,与null out相比
- php代码在textbox更改事件上显示null
- 相同的RegExp返回不同的结果-第一次是正确的结果,第二次是null
- 在php中提交数据时,如果某些值为null,而某些值为非null,如何进行查询
- 未捕获的类型错误:无法读取属性'addEventListener'的null chrome扩展名
- 为什么localStorage[“..”]未定义,而localStorage.getItem(“..”)为null
- ajax在输入等于null时进行检查
- html+javascript:如何在某些条件下禁用dropdownlist中的null选项
- 未捕获的类型错误:无法读取属性'状态'在react中为null
- contentWindow.document.body is null
- 在经过DATE验证的列中创建null值
- 为什么是文档.旧版应用程序中的DOM-object.properties为null
- if(foo!==null)的计算结果为true,即使foo为null
- php函数的ajax html$_POST值返回null
- Myfunc=_emptyFunc vs Myfunc=null