function initDatabase() {
try {
if (!window.openDatabase) {
alert('Local Databases are not supported by your browser. Please use a Webkit browser for this demo');
} else {
var shortName = 'testdb';
var version = '1.0';
var displayName = 'test database';
var maxSize = 3 * 1024 * 1024; // 3 MB
DB = openDatabase(shortName, version, displayName, maxSize);
}
} catch(e) {
if (e == 2) {
// Version mismatch.
console.log("Invalid database version.");
} else {
console.log("Unknown error "+ e +".");
}
return;
}
}
function GetMe() {
DB.transaction(
function (transaction) {
//some other stuffs
var ff = 55;
}
);
return ff;
}
$(function() {
initDatabase();
alert(GetMe());
});
伙伴帮我解决这个问题
GetMe函数返回“undefined”而不是55,因为变量“ff”在DB.transaction中。
如果变量“ff”在DB.transaction之外,它可以完美地工作,但如果它在DB.transaction中则不行
有人可以告诉我如何让它返回DB.transaction
中的“ff”变量我试过return(DB.transaction.ff);还有其他一些东西,但没有任何效果:(
请帮帮我。
谢谢:)
答案 0 :(得分:1)
你回答了自己的问题:
如果变量“ff”在DB.transaction之外,它可以完美地工作,但如果它在DB.transaction中则不行
变量ff
必须在函数之外才能正确定位它。这就是你想要的,因为你希望父函数返回ff
:
function GetMe() {
var ff;
a = function () {
ff = 55;
}
a()
return ff; // 55
}