我正在尝试理解用JavaScript编写的Chrome扩展程序代码。但有一个与回调函数相关的代码我不明白。
function dumpBookmarks(query) {
var bookmarkTreeNodes = chrome.bookmarks.getTree(
function(bookmarkTreeNodes) {
$('#bookmarks').append(dumpTreeNodes(bookmarkTreeNodes, query));
});
}
根据我的理解,回调函数应该在后面运行,这意味着内部函数中的bookmarkTreeNodes应该来自于var bookmarkTreeNodes(来自于chrome.bookmarks.getTree函数)。但是,当我把var bookmarkTreeNodes改成其他任何东西,并保持内部函数中的bookmarkTreeNodes不变时,程序仍然能够正常运行。这个结果和我的想法相矛盾。
那么内部函数中的bookmarkTreeNodes从哪里来?它如何在chrome.bookmarks.getTree()函数之前出现?
谢谢!