可能重复:
如何克隆js对象?
这是创建javascript对象的另一种方法(使用对象文字符号而不是函数):
user = {
name: "Foo",
email: "bar@baz.com"
}
Run Code Online (Sandbox Code Playgroud)
有没有办法克隆这个对象还是单身?
Dag*_*bit 29
试试这个:
var clone = (function(){
return function (obj) { Clone.prototype=obj; return new Clone() };
function Clone(){}
}());
Run Code Online (Sandbox Code Playgroud)
这是正在发生的事情.
__proto__.克隆的对象将共享原始对象的所有属性,而不会生成任何内容的任何副本.如果为克隆对象的属性分配了新值,则它们不会干扰原始对象.并且不需要篡改内置插件.
请记住,新创建的对象的对象属性将引用与克隆对象的同名属性相同的对象.为克隆的属性分配新值不会干扰原始属性,但会为克隆的对象属性赋值.
在chrome或firebug控制台中试试这个:
var user = {
name: "Foo",
email: "bar@baz.com"
}
var clonedUser = clone(user);
console.dir(clonedUser);
Run Code Online (Sandbox Code Playgroud)
可以在此处找到该克隆技术的详细说明.
Top*_*era 11
您可以使用JSON对象(存在于现代浏览器中):
var user = {name: "Foo", email: "bar@baz.com" }
var user2 = JSON.parse(JSON.stringify(user))
user2.name = "Bar";
alert(user.name + " " + user2.name); // Foo Bar
Run Code Online (Sandbox Code Playgroud)
编辑
如果您需要在旧版浏览器中使用此功能,请访问http://www.json.org/js.html.
| 归档时间: |
|
| 查看次数: |
31524 次 |
| 最近记录: |