【发布时间】:2011-08-25 03:25:10
【问题描述】:
这是我最简单的代码:
var this_version =null;
this.timervar = setTimeout(function () {
try {
// Firefox 4 and later; Mozilla 2 and later
Components.utils.import("resource://gre/modules/AddonManager.jsm");
AddonManager.getAddonByID("parasites@maafire.com", function(addon) {
this_version = addon.version;
alert("r "+this_version);
});
} catch (ex) {
// Firefox 3.6 and before; Mozilla 1.9.2 and before
var em = Components.classes["@mozilla.org/extensions/manager;1"]
.getService(Components.interfaces.nsIExtensionManager);
var addon = em.getItemForID("parasites@maafire.com");
this_version = addon.version;
alert("rr " + this_version);
}
alert("rrr " + this_version);
}, 2000);
这太奇怪了,因为它会触发两次alert("r "+this_version);,但是这个alert("rrr "+this_version);总是给我null ;(
还在学习 JS ,所以这很令人费解......请帮助!
谢谢!
【问题讨论】:
-
当你的代码被这样格式化时,没有人会费心查看你的代码
-
那么单 r 会引起什么警报?三个 r 的警报是否发生在单个 r 的警报之前?
-
首先我得到
r 0.5然后rrr null然后r 0.5然后rrr null
标签: javascript variable-assignment