Я запутался в отношении порядка оценки в javascript. Например, это код, который я написал
this.getTabUrl=function()
{
this.logToConsole("1"+"getTabUrl is called");
var myUrl
chrome.tabs.getSelected(null, function(tab)
{
myUrl = tab.url;
console.log("2"+tab.url);
console.log("3"+myUrl);
//this.parent.logToConsole(tabUrl);
});
this.tabUrl=myUrl;
this.logToConsole("3.1"+myUrl);
this.logToConsole("4"+this.tabUrl);
return myUrl;
}
Когда я вызываю эту функцию, это вывод, который я получаю
> 1getTabUrl is called
> 3.1undefined
> 4undefined
> 2undefined
Как получается, что 3.1 и 4 оцениваются первыми, прежде чем 2.