从另一个javascript获取值

时间:2012-09-27 16:30:28

标签: javascript xul

我想在调用scipt2时传递值(用户名)。 script1独立但在script1之后,所以当script1填充了值时,需要它持久化以供将来的脚本调用使用。

script1.js

 var user = "";
function method1(){

    var username = document.getElementById('username').value;
    var app = new UserText();
    app.setValue(username);
    // more logic
    }
function UserText(){

    this.getValue = function(){
        return this.user;
    };

    this.setValue = function(val){
        this.user = val;
    };
}

Script2.js

alert(UserText.getValue());

1 个答案:

答案 0 :(得分:1)

您必须向全局范围公开内容。现在,当您致电method1()时,用户名将存储在UserText的特定实例中。该特定实例由变量app表示,该变量当前仅限于method1()函数。

解决此问题的一种方法是简单地将app的声明移至全局范围。换句话说,将脚本的第一部分更改为以下内容:

var user = "";
var app;
function method1() {
    var username = document.getElementById('username').value;
    app = new UserText();
    app.setValue(username);
    // more logic
}

请注意,我已将var app声明移至全局范围。现在,您可以通过

访问具有用户值的实例
alert(app.getValue());

在相关的说明中,您应该知道您的var user = "";行目前什么都不做,至少是您提供给我们的代码。当您在this.user类中阅读和写入UserText时,它会使用该类的实例来存储信息,这就是您在app.user属性中找到值的原因。而不只是user变量。