javascript变量DB.transaction

时间:2012-01-21 21:18:34

标签: javascript variables

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);还有其他一些东西,但没有任何效果:(

请帮帮我。

谢谢:)

1 个答案:

答案 0 :(得分:1)

你回答了自己的问题:

  

如果变量“ff”在DB.transaction之外,它可以完美地工作,但如果它在DB.transaction中则不行

变量ff必须在函数之外才能正确定位它。这就是你想要的,因为你希望父函数返回ff

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