2012-04-20 44 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