Javascript范围关闭问题

时间:2015-07-19 03:00:52

标签: javascript

此语法不起作用(urlToUse设置为undefined而不是当前url):

var urlToUse;
    chrome.tabs.query({'active': true, 'windowId': chrome.windows.WINDOW_ID_CURRENT}, function(tabs){
        urlToUse= tabs[0].url;
    });
    $('#itemsList').append(urlToUse)
}

尽管如此(urlToUse设置为当前标签页面)。唯一的区别是最后一行现在位于回调函数中:

var urlToUse;
    chrome.tabs.query({'active': true, 'windowId': chrome.windows.WINDOW_ID_CURRENT}, function(tabs){
        urlToUse= tabs[0].url;
        $('#itemsList').append("<p>"+urlToUse+"</p>");
    });

但是,基于this堆栈溢出示例(链接上的#5,粘贴在下面),代码应该可以工作:

var a = 1;

var six = (function() {
  var a = 6;

  return function() {
// JavaScript "closure" means I have access to 'a' in here,
// because it is defined in the function in which I was defined.
alert(a);
  };
})();

我的理由是变量urlToUse是在定义回调的函数中定义的,因此javascript闭包适用。所有这些都在$(document).ready(function(){here});

的else语句中

0 个答案:

没有答案