2012-04-20 69 views
2

快速問題(我認爲)。鑑於這段代碼:解密一些神祕的遺留JavaScript

SomeObject._gaCallbackStack.each(function(callback) 
{ 
    if ($type(callback) == 'function') callback(); 
}); 

這裏究竟發生了什麼?

對於存儲在回調堆棧中的每個函數,代碼是否調用名爲「callback()」的函數?還是通過在變量名的末尾附加「()」來調用回調堆棧中的每個函數?

感謝您的幫助!

+0

它應該使用=== :) – 2012-04-20 19:55:35

+0

@JustinThomas同意! :-) – 2012-04-22 01:36:30

回答

4

它似乎是通過堆棧中的每個元素的循環,其中可能包含函數。如果循環遇到一個函數,它會在沒有參數的情況下執行它。

+0

所以你所說的是,如果我有一個名爲「fred」的變量,並且給該變量分配了一些隨機函數對象,我可以像這樣執行該函數:「fred();」。對? – 2012-04-22 01:43:47

+0

是的,這是正確的。 – wsanville 2012-04-22 22:41:58