今天我正在玩道場,我有這樣的事情,我想向你確認道場專家!如何使用聲明定義dojo靜態變量或靜態對象
我已經建立這樣的樣品模塊,如
define("xmodules/staticvartest", [ "dojo/_base/declare", "dojo/_base/lang"], function(declare, lang) { var sttestvar = "staticTestOrginal"; return declare("xmodules.staticvartest", null, { constructor : function(options) { lang.mixin(this, options); this.dytestvar = "dynamicTestOrginal"; }, setthedata: function(s, d) { sttestvar = s; this.dytestvar = d; }, show: function() { console.log(this.from + ", dytestvar=[" +this.dytestvar+ "], sttestvar= [" +sttestvar+ "]" ); }, }); });
,我調用此momdule,如
require([ "xmodules/staticvartest" ], function(SVTest) { var o1 = new SVTest({ "from" : "fromobj1", }); var o2 = new 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(); });
和GOT結果:
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類的靜態變量!
我的問題是:這是絕對是是否正確?任何危險的漏洞?如果我在生產中使用這種編碼模式是否安全?我不是真正的道場專家。任何機構都可以提供有關我的結論的信息/評論/投訴。非常讚賞它。
請把你的代碼的縮進或標記它作爲代碼。你的問題是不可讀的。 – Layke
你可能看到現在它是可讀代碼,任何線索回合問題? – user2993409