如何使用 dedeclare 定义 dojo 静态变量或静态对象
How to define dojo static variables or static objects by using declare
我今天在玩道场,我有这样的事情我想和你们道场专家确认一下!
我创建了这样一个示例模块,例如
define("xmodules/staticvartest", [ "dojo/_base/declare", "dojo/_base/lang"], function(declare, lang) { var sttestvar = "staticTestOrginal"; return declare("xmodules.staticvartest", null, { 构造函数 : 函数(选项) { Lang.mixin(this, options); 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 = 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(); });
并得到结果:
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类静态变量!
我的问题是:这是绝对正确的吗? 有什么危险的洞吗?如果我在生产中使用这样的编码架构是否安全?我不是真正的道场专家。任何人都可以提供有关我的结论的信息/评论/投诉。非常感谢。
我没有立即看到任何问题。一件事是你需要一个类的实例才能正常工作。我在道场中看到的静力学是这样的
define([], function(){
var o = declare(...);
o.sttestvar = "staticTestOrginal";
return o;
});
那么你不需要类的实例来使用该静态的,即
require([ "xmodules/staticvartest" ], function(SVTest) {
console.log(SVTest.sttestvar);
})
相关文章:
- Node.js-模块导出静态变量
- 在angularJS中定义函数内部的静态变量
- jsp内部html中的Javascript静态变量
- 是否可以在window.onresize上更改jQuery插件的静态变量
- 如何使用 dedeclare 定义 dojo 静态变量或静态对象
- 为什么我可以在ServiceNow中访问示例脚本化Web服务(订购黑莓)并返回静态变量,但它没有订购黑莓
- 为什么 Object.create 使我的私有变量成为静态变量
- 使用静态变量初始化同一类中的变量
- 具有 John Resig 简单类模式的静态变量
- 使用原型模拟静态变量
- 如何在 javascript 中使用 const 关键字 (ecma 6) 和函数静态变量
- 为什么要在函数定义之外引用静态变量(函数属性)
- 设置超时函数回调静态变量
- Javascript 类中的静态变量
- 更新 JavaScript 函数中的静态变量
- 是否可以使用 CoffeeScript 迭代类的静态变量和方法
- Javascript 中的静态变量继承 (ES6)
- 无法访问 JavaScript 对象中的静态变量,该对象对另一个 JavaScript 对象进行子类化
- 如何使用静态变量数组
- Javascript静态变量,并在不同的页面中使用