如果我想发布一个Myfunc
名为什么是实现此类任务的最佳方法?
_emptyFunc=function(){}
问问题
61 次
3 回答
1
- 第一个是可调用的
- 第二个将导致 TypeError 异常。
希望有帮助。
于 2012-05-28T10:11:20.330 回答
1
_emptyFunc
调用时可调用null
抛出TypeError
:
js> _emptyFunc=function(){}
(function () {})
js> _nullFunc=null;
null
js> _emptyFunc()
js> _nullFunc()
typein:5: TypeError: _nullFunc is not a function
因此,使用无操作函数的优点是您可以简单地无条件地调用它,而不必检查它是否为空/未定义,甚至可能测试它是否是可调用的。
使用null
orundefined
的优点是您的代码可以避免仅在传递回调时才执行必要的操作。
如果您确实打算让 JS 引擎释放之前存储在变量中的任何函数使用的内存,请将其设置为null
. 分配一个不同的函数还将删除(可能)对该函数的最后一个引用,从而允许 GC 收集它,但您将拥有一个显然也使用一些内存的新函数。
于 2012-05-28T10:14:42.247 回答
1
将 MyFunc 设置为 null,如果没有更多可访问的引用,这将导致 GC 收集 Function 对象。一般来说,你不需要做这样的事情。
于 2012-05-28T10:15:34.680 回答