传递给另一个函数时,JS变量不会保存

时间:2014-01-02 05:46:33

标签: java javascript

我从一个java applet获取一个值并将其存储在JS中的变量中。然后我在这个变量上调用一个警告,警告将正确的值输出到屏幕,但是当我在createApp函数中再次调用此变量时,变量打印为未定义,我不知道为什么。任何帮助都会受到谴责

JS代码:

var app = {


notLoaded : true,
dataVar : "hello",


testApplet : function(){


    while(app.notLoaded){
        if(typeof myApplet.testString != 'undefined')
        {

            app.notLoaded = false;
            this.dataVar = myApplet.testString;
            alert(this.dataVar);
            //window.open("menuPage.html");
            app.createApp();

        }
    }
},


bluetoothPage : [ 0x10, [this.dataVar, "bluetoothMenu"], 
          0xA1, ["rpm2", "RPM2", "1500", "0", "3000"],
          0xA1, ["rpm3", "RPM3", "1500", "0", "3000"],
          0xD0],

createApp : function(){

        //document.write(app.bluetoothPage);
    app.createPage(menuPage);
    app.createPage(app.bluetoothPage);

      .........ect  } closes object 

当菜单写入变量this.dataVar从Hello World变为未定义时,bluetoothPage的所有其他部分都能正常工作

1 个答案:

答案 0 :(得分:0)

您解决了范围的问题。变量dateVar是app的本地变量。让它在全局中访问各种功能。

var appletdataVar="";
var app = {

在app功能中分配值。

 this.dataVar = myApplet.testString;
 alert(this.dataVar);
 appletdataVar=myApplet.testString;

现在您可以在其他功能中访问appletdataVar