3

如果我想发布一个Myfunc
名为什么是实现此类任务的最佳方法?
_emptyFunc=function(){}

4

3 回答 3

1
  1. 第一个是可调用的
  2. 第二个将导致 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

因此,使用无操作函数的优点是您可以简单地无条件地调用它,而不必检查它是否为空/未定义,甚至可能测试它是否是可调用的。

使用nullorundefined的优点是您的代码可以避免仅在传递回调时才执行必要的操作。

如果您确实打算让 JS 引擎释放之前存储在变量中的任何函数使用的内存,请将其设置为null. 分配一个不同的函数还将删除(可能)对该函数的最后一个引用,从而允许 GC 收集它,但您将拥有一个显然也使用一些内存的新函数。

于 2012-05-28T10:14:42.247 回答
1

将 MyFunc 设置为 null,如果没有更多可访问的引用,这将导致 GC 收集 Function 对象。一般来说,你不需要做这样的事情。

于 2012-05-28T10:15:34.680 回答