dojo类对象的工作原理
how works dojo class object
我已经声明了一个dojo类,并且有点混淆。
define(["dojo/_base/declare",
"config/commonConfig",
"esri/SpatialReference",
"esri/geometry/Extent",
"esri/geometry/Point"],
function (declare,config, SpatialReference, Extent, Point) {
var wgs1984 = new SpatialReference({ "wkt": config.wktWgs1984 });
return declare("modules.utils", null, {
wgs1984: wgs1984,
});
});
我在类外创建了名为wgs1984的变量,并在类中引用。以下三个研究有区别吗:
var wgs1984 = new SpatialReference({ "wkt": config.wktWgs1984 });
return declare("modules.utils", null, {
wgs1984: wgs1984,
});
Is this call gives same instance on memory each time?
和
return declare("modules.utils", null, {
wgs1984: new SpatialReference({ "wkt": config.wktWgs1984 })
});
Is this call create new instance on memory?
和
return declare("modules.utils", null, {
wgs1984: SpatialReference({ "wkt": config.wktWgs1984 })
});
这个调用是在内存上创建新实例吗?
在第一个示例中,加载模块时将创建一次空间引用。modules.utils的所有实例都将指向同一个对象。
在第二种情况下,每次实例化modules.utils对象时都会创建SpatialReference。每个utils对象都将有一个单独的SpatialReference。
第三种情况没有道理。我不确定结果会是什么。
第二种情况是大多数情况下你会做的事情,但也有使用第一个例子的情况。
编辑:
如果您想在每次调用wgs84时创建新的SpatialReferences,则需要使用一个函数。
declare("utils",[],{
wgs84: function(){ return new SpatialReference(...);}
})
var obj = new utils();
var instance1 = obj.wgs84();
var instance2 = obj.wgs84();
instance1和instance2不是同一个对象。
相关文章:
- 读取在具有IE的工作程序中生成的对象URL
- 我怎样才能让jQuery即使在尚未创建的对象上也能工作
- JSON.stringify没有'在更改的对象上无法按预期工作.如何处理
- 如何让我的正则表达式代码在我的dojo cellWidget对象上工作
- dropable的Over事件是't工作正常,在可拖动对象被拖放到贪婪的可拖动对象上并再次拖动后
- 地图如何在 Ecmascript 6 中使用对象键工作
- 了解 JavaScript 对象实例或工作流
- JavaScript 返回对象未按预期工作
- 如何让、要求和原型协同工作以在 javascript 中制作对象
- 谷歌应用程序脚本-正在尝试使用getUrl.TypeError:在对象工作表中找不到函数getUrl
- 一个对象怎么能像返回自身和另一个对象一样工作
- "键“;jQuery中的对象无法正常工作
- 对象引用的隐式传递是如何工作的
- dojo类对象的工作原理
- app.use(restify.bodyParser())无法工作,因为req对象为空
- 从服务器端将属性绑定到套接字对象;似乎不能正常工作
- 为什么mongoose.connect()在mongoose对象上没有作为方法出现时工作得很好
- 在 JavaScript 不工作对象中连接两个变量
- JS循环插件在IE11中不工作.对象不支持属性或方法循环
- Javascript 对象:如何创建包含工作对象的封装