在同一变量中存储不同的对象
Storing different objects in same variable
我正试图弄清楚如何在某个"命名空间"中存储不同的对象。
我有这样的东西:
app.js
// This is the startup script:
var MyApp = {}
MyApp.ui = {}
MyApp.ui = require('ui/MainWindow');
MyApp.ui = require('ui/SecondWindow');
// Doesn't exist anymore because the 2nd require overwrites the
// first include
MyApp.ui.MainWindow.test;
然后我还有MainWindow.js
和SecondWindow.js
,看起来像这样:
var MainWindow = {
test: "Main"
}
exports.MainWindow = MainWindow;
var SecondWindow = {
test: "Second"
}
exports.SecondWindow = SecondWindow;
exports.XXXWindow = XXXWindow
基本上使该对象可用。
因此,在我的app.js
中,我尝试将MainWindow
对象存储在MyApp.ui
中。所以我可以这样称呼它:
MyApp.ui.MainWindow.test
然后我还想将SecondWindow
对象添加到其中。所以我可以用同样的方式称之为:
MyApp.ui.SecondWindow.test
但我现在拥有它的方式导致第二个要求覆盖第一个。所以它现在只指向SecondWindow
。我必须做些什么才能从MyApp.ui
调用这两个对象??
我建议你这样做(如果代码语法不正确,我很抱歉,但我使用了coffeescript,我不再习惯Javascript):
MainWindow.js
var MainWindow = function() {
return {test: 'Main'};
};
module.exports = MainWindow;
SecondWindow.js
var SecondWindow = function() {
return {test: 'Second'};
};
module.exports = SecondWindow;
app.js
var myApp = {
ui: {
MainWindow: require('MainWindow.js'),
SecondWindow: require(SecondWindow.js)
}
};
现在我个人的看法。我更喜欢做:
app.js
var MainWindow = require('MainWindow'),
SecondWindow = require('SecondWindow'),
myApp = {
ui: {
MainWindow: new MainWindow(),
SecondWindow: new SecondWindow()
}
};
MyApp.ui
的第二个赋值将覆盖其旧值。但是,您可以执行以下操作:
function inject(obj_into,obj_from){
for(var x in obj_from)
obj_into[x] = obj_from[x];
}
MyApp.ui = {MainWindow:{},SecondWindow:{}};
inject(MyApp.ui.MainWindow,require('ui/MainWindow'));
inject(MyApp.ui.SecondWindow,require('ui/SecondWindow'));
首先用空属性对象MainWindow
、SecondWindow
初始化MyApp.ui
,然后用inject
填充它们。
相关文章:
- Rails将JavaScript对象存储到Model的有效方式
- JavaScript-将多个对象存储在数组中,并通过访问它们的属性
- 将Javascript对象存储在Wordpress用户数据库中
- 我有一个javascript类和该类的对象,我想将该对象存储在本地存储中并检索它
- 将对象存储为JSON并在Javascript中访问它
- Angular:将对象存储在服务中以在视图中显示和将crud函数存储到服务器的最佳方式是什么
- 将此对象存储在自定义专用变量中
- 有没有任何方法可以将json对象存储在HTML标记的默认/自定义属性中,比如<tr>
- 如何从xhrpost函数中检索响应数据并将该对象存储在dojo/store中
- 将引用一个对象存储到Mongoose和MeanJS中
- 将数据作为 JSON 对象存储在 Firebase 中
- 返回 indexedDB 数据库对象存储中的所有值
- 将返回的对象存储到 Azure Microsoft数组 JavaScript 中
- 为什么将 JSON 对象存储在 cookie 中比字符串更安全或更好
- IndexedDB - 对象存储 vs 多个数据库 vs 索引
- 正确初始化索引数据库对象存储
- 与 API 一起使用时,将 Date 对象存储在数据库中的最佳实践是什么
- 我可以将JavaScript Map对象存储在Meteor的MongoDB中吗?
- 每次单击按钮时,如何创建新对象并将旧对象存储在数组中?OOP JavaScript
- 当我在 Dojo 中左键单击树行(树节点)时,如何从对象存储中获取 ID