2012-05-28 44 views

回答

1

_emptyFunc是可調用,同時呼籲null拋出一個TypeError

js> _emptyFunc=function(){} 
(function() {}) 
js> _nullFunc=null; 
null 
js> _emptyFunc() 
js> _nullFunc() 
typein:5: TypeError: _nullFunc is not a function 

因此,使用無操作功能的優點是,你可以簡單地把它無條件地而不是來檢查,如果它不是空/未定義和甚至可能測試它是否可以調用。

使用nullundefined的優點是,您的代碼可以避免只在回調通過時執行必要的操作。

如果您實際計劃允許JS引擎釋放之前存儲在變量中的任何函數所使用的內存,請將其設置爲null。指定一個不同的函數也會刪除(可能)最後一個函數的引用,從而允許GC收集它,但是你會得到一個明顯使用一些內存的新函數。

1
  1. 第一個是可調用
  2. 第二個將導致TypeError異常。

希望有所幫助。

1

將MyFunc設置爲null,如果沒有可訪問的引用,則會導致GC收集Function對象。一般來說,你不需要做這樣的事情。

相關問題