动态地在另一个对象中存储Javascript对象
Storing Javascript Objects in Another Object Dynamically
这是我想要完成的。我正在动态创建对象,我想将它们添加到"主容器"对象中。我目前在容器中使用数组,但有时我想通过名称而不是通过索引访问这些对象。如:
function Scene() {
this.properties;
}
Scene.prototype.addEntity = function(entity) {
this.push(entity);
}
var coolNameForObject = { Params };
var Scene1 = new Scene();
Scene1.addEntity(coolNameForObject);
我知道。push是不可用的,只能用于数组,但我厌倦了整天使用索引。我想引用每个实体的名字。例句:
Scene1.coolNameForObject.property
但我想不出一个好的方法来做。
也许可以这样写:
coolNameForObject.name = 'coolNameForObject';
Scene1.(coolNameForObject.name) = coolNameForObject;
但是这种语法在Dreamweaver上很糟糕。我已经用谷歌搜索过了,但是任何出现的问题都可以通过数组更容易地解决,而且我对我需要这些对象的目的很有信心,能够通过容器对象的属性引用来调用对象是一种方法。
我可以完全跳过addEntity(),直接进入
Scene1.coolNameForObject = coolNameForObject;
但是这似乎违背了封装的思想。
谢谢。
Javascript对象的属性可以动态添加,并使用方括号语法直接或从变量命名:
var propName = "foo";
coolNameForObject[propName] = 'coolNameForObject';
coolNameForObject["bar"] = 'coolNameForObject';
Scene.prototype.addEntity = function(name, entity) {
this[name] = entity;
}
像这样添加属性并使enumerable: true,这不会产生问题。您可以轻松访问密钥。
Object.defineProperty(obj, "key", {
enumerable: true,
configurable: true,
writable: true,
});
相关文章:
- 如何使用Doctrine在MongoDB中存储Javascript代码
- 有人知道如何在本地存储javascript函数所做的css更改吗
- .txt文件和.json文件同样适合存储javascript对象
- 是否可以存储javascript函数调用并在设置某些变量时执行它
- 如何在外部存储javascript变量(没有服务器)的值
- 如何在PHP会话中存储javascript数组
- 本地存储 javascript 变量到 php
- 如何在rails/devise中存储Javascript/AJAX变量
- 我可以在mySQL数据库中存储JavaScript对象吗?
- 用于存储 Javascript 应用程序的持久本地数据的轻量级解决方案
- 在元素上使用css属性content来异常存储javascript的信息
- 如何正确存储javascript模板,使其不会;t实例化了多次
- windows8存储javascript应用程序,从web下载和保存图像
- 获取sencha touch中本地存储javascript文件的属性
- 浏览器是读取/存储Javascript文件中的所有内容,还是仅读取/存储它们需要的内容
- 可以使用数据属性来存储Javascript'状态'
- 离线webapp -存储JavaScript对象
- 从本地存储javascript的对象数组中删除一个对象
- 如何在jsp字符串中存储javascript变量值
- 数组存储javascript