Myfunc = _emptyFunc vs Myfunc = null

时间:2012-05-28 10:09:08

标签: javascript function

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

3 个答案:

答案 0 :(得分:1)

  1. 第一个可以调用
  2. 第二个会导致TypeError异常。
  3. 希望有所帮助。

答案 1 :(得分:1)

调用_emptyFunc时{p> 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,甚至可能测试它是否可调用。

使用nullundefined的优势在于,您的代码可以避免在传递回调时仅执行必要的操作。

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

答案 2 :(得分:1)

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