javascript variable DB.transaction

javascript variable DB.transaction

本文关键字:transaction DB variable javascript      更新时间:2023-09-26
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"变量

我尝试了返回(DB.transaction.ff(;和其他一些东西,但没有任何效果:(

请帮助我。

谢谢:)

你回答了你自己的问题:

如果变量"ff"在DB.transaction之外,它就可以完美地工作,但如果它在DB.transaction内,则不能正常工作。

变量ff必须位于函数外部才能正确限定其作用域。在这种情况下,这就是您想要的,因为您希望父函数返回ff

function GetMe() {
   var ff;
   a = function () {
       ff = 55;
   }
   a()
   return ff; // 55
}