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();
}
究竟发生在这里?