我想在调用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());
答案 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
变量。