at.*_*at. 37 javascript jquery clone copy javascript-objects
我在Javascript中有一个简单的对象(或哈希):
var settings = {
link: 'http://example.com',
photo: 'http://photos.com/me.jpg'
};
Run Code Online (Sandbox Code Playgroud)
我需要它的副本.是否有一种settings.clone()类型方法会给我另一个具有相同属性的对象?我正在使用jQuery,很高兴使用jQuery实用程序方法(如果存在).
pim*_*vdb 61
是的,用原始对象扩展一个空对象; 这样,一切都将被复制:
var clone = $.extend({}, settings);
Run Code Online (Sandbox Code Playgroud)
用另一个扩展一些填充的对象,例如:
$.extend({a:1}, {b:2})
Run Code Online (Sandbox Code Playgroud)
将返回:
{a:1, b:2}
Run Code Online (Sandbox Code Playgroud)
使用相同的逻辑:
$.extend({}, {foo:'bar', test:123})
Run Code Online (Sandbox Code Playgroud)
将返回:
{foo:'bar', test:123}
Run Code Online (Sandbox Code Playgroud)
即有效地克隆.
Pan*_*lis 32
以非jQuery的方式.
var newObj = {};
Object.keys(settings).forEach(function(key) {
newObj[ key ] = settings[ key ];
});
Run Code Online (Sandbox Code Playgroud)
这仅复制顶级属性.要将具有嵌套对象的哈希值复制为属性值,您需要使用递归函数.
注:该Object.keys(settings)避免调用的需要settings.hasOwnProperty(key).
| 归档时间: |
|
| 查看次数: |
32222 次 |
| 最近记录: |