2011-09-21 99 views
0

下面的代码揭示了一些Chrome的内部调用堆栈运作的:了解Chrome的基本调用堆栈结构

(function revealCallStack() { 
    var fn = arguments.callee; 
    console.log('**Bottom of stack**:\n\n', fn); 
    while (fn = fn.caller) console.log('**Next on stack**:\n\n', fn); 
})(); 

请参阅http://jsfiddle.net/fW5Ag/。这段代码在堆栈中显示了四个函数。前两个是有点可预测的。最后两个(粘贴在下面)呢?

function (event){ 
    if (custom.condition.call(this, event, type)) return fn.call(this, event); 
    return true; 
} 

function (event){ 
    event = new DOMEvent(event, self.getWindow()); 
    if (condition.call(self, event) === false) event.stop(); 
} 

究竟发生在这里?

回答

3

这些是Mootools和jsFiddle函数,用于执行Javascript而不是浏览器功能。

尝试nowrap并且没有库:http://jsfiddle.net/fW5Ag/1/