如何在 JavaScript 中基于另一个对象动态创建属性和对象
How to create properties to and object dynamically based on another object in JavaScript?
我有一个场景,我需要从source
对象创建一个新的result
对象。
该对象需要具有 source
中的所有属性,并添加"方法",并根据要基于模板执行的属性和代码进行命名(在我的情况下alert(this.x)
)。
注意:脚本应考虑source
中任意数量的属性
我想知道:
- 是否可以在JS中执行此操作?
- 什么是合适的工艺?
- 有什么例子吗?
从源对象
var source = {
a: 'a',
b: 'b'
};
我需要获取动态创建的结果 OBJ(通过某个函数)
var result = {
a: 'a',
b: 'b',
_setA: function(){
alert(this.a);
},
_setB: function(){
alert(this.a);
}
}
注意:结果是在处理源对象后创建的
编辑:
根据您的答案最终解决方案
http://jsfiddle.net/kbnd6e5c/1/
可以先使用$.extend
方法来复制属性,然后需要循环访问属性并创建动态资源库。例如,如下面的代码:
var source = { a: 'a', b: 'b' };
var result = $.extend({}, source);
Object.keys(source).forEach(function(key) {
result['_set' + key[0].toUpperCase() + key.slice(1)] = function(value) {
alert(this.key);
this[key] = value;
}
});
查看下面的工作演示。
var source = { a: 'a', b: 'b', test: 'test' };
var result = $.extend({}, source);
Object.keys(source).forEach(function(key) {
result['_set' + key[0].toUpperCase() + key.slice(1)] = function(value) {
this[key] = value;
}
});
alert([ result.a, result.test ]);
result._setA('a1');
result._setTest('test1');
alert([ result.a, result.test ]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
我不确定我是否完全理解您的问题,但我认为您应该使用这个简单的东西:
var copy = result
copy.example = {
x: Y,
z, T
}
copy.newFuntion = function(){...} //add your own function
这样你就拥有了结果所拥有的一切+你自己的东西
你可以做这样的事情:
var result = {
a: 'A',
b: 'B'
};
var copy = result;
Object.keys(result).forEach(function(key) {
Object.defineProperty(copy, "_set" + key, {
get: function() {
return result[key];
}
})
});
copy._seta;
copy._setb;
源
相关文章:
- 如何在javascript中创建动态json对象
- 如何创建动态ajax提交表单
- 如何在javascript中创建动态正则表达式
- 如何使用pouchdb创建动态查询(couchdb可能也是如此)
- 如何在jquery mobile中使用json文件创建动态下拉菜单
- 基于所选下拉列表值创建动态复选框
- 使用推动创建动态对象
- 在浏览器窗口中创建动态灵活的分割标记
- 将字符串与integer连接,用作jquery中的变量(创建动态变量)
- 创建动态javascript对象
- 如何使用指令属性值创建动态模板
- 使用 JavaScript 创建动态下拉列表
- 如何在创建动态 HTML 页面时使用日期选择器
- 使用javascript中的append创建动态下拉列表
- Jquery - 创建动态名称选择器
- 如何根据查询字符串值创建动态超链接
- 使用javascript创建动态多维关联数组
- 使用javascript创建动态二级下拉列表
- 在JavaScript中创建动态绑定
- 在JS中创建动态对象