2

私は今日道場で遊んでいます。道場の専門家に確認したいことがあります。

私はそのようなサンプルモジュールを作成しました

define("xmodules/staticvartest", [ "dojo/_base/declare", "dojo/_base/lang"], function(declare, lang) {
    var sttestvar = "staticTestOrginal";
    return declare("xmodules.staticvartest", null, {
        コンストラクター:関数(オプション){
            lang.mixin(これ、オプション);
            this.dytestvar = "dynamicTestOrginal";
        }、
        setthedata: function(s, d) {
            sttestvar = s;
            this.dytestvar = d;
        }、
        表示: 関数() {
            console.log(this.from + ", dytestvar=[" +this.dytestvar+ "], sttestvar= [" +sttestvar+ "]" );
        }、              
    });
});

そして、私はこのモジュールを呼び出します。

require([ "xmodules/staticvartest" ], function(SVTest) {
     var o1 = 新しい SVTest({
             "from": "fromobj1",
        });
var o2 = 新しい SVTest({
            "from": "fromobj2",
        });     
        o1.show();
        o2.show();
        console.log("");

        o1.setthedata("ST_FROM_O1", "DY_FROM_O1");
        o1.show();
        o2.show();
        console.log("");

        o2.setthedata("ST_FROM_O2", "DY_FROM_O2");
        o1.show();
        o2.show();
    });

そして結果を得ました:

  fromobj1、dytestvar=[dynamicTestOrginal]、sttestvar= [staticTestOrginal]
  fromobj2、dytestvar=[dynamicTestOrginal]、sttestvar= [staticTestOrginal]

  fromobj1、dytestvar=[DY_FROM_O1]、sttestvar= [ST_FROM_O1]
  fromobj2、dytestvar=[dynamicTestOrginal]、sttestvar= [ST_FROM_O1]

  fromobj1、dytestvar=[DY_FROM_O1]、sttestvar= [ST_FROM_O2]
  fromobj2、dytestvar=[DY_FROM_O2]、sttestvar= [ST_FROM_O2]

そこから、 sttestvarが Java クラスの静的変数とほとんど同じように動作していることに気づきました。

私の質問は次のとおりです。これは絶対に正しいですか?危険な穴?このようなコーディングスキーマを本番環境で使用しても安全ですか? 私は本当に道場の専門家ではありません。私の結論に関する情報/コメント/苦情は、どの団体でも提供できます。とても感謝しています。

4

1 に答える 1