0

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());
4

1 に答える 1

1

何かをグローバル スコープに公開する必要があります。現在、 を呼び出すmethod1()と、ユーザー名は の特定のインスタンスに保存されていますUserTextappその特定のインスタンスは、現在関数のみにスコープされている変数によって表されますmethod1()

これを解決する 1 つの方法は、単に宣言を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.useruser

于 2012-09-27T17:01:24.360 に答える