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();
}
究竟發生在這裏?