如何克隆整个“对象”在Javascript
How to clone an entire "object" in Javascript?
我已经尝试了很多我在这里找到的解决方案,但直到现在他们都没有真正解决我的问题。
假设我有一个这样的函数:
var SquareObject = function(id, x, y, text, rectClass, textClass){
var arrayObj = {
"id": null,
"shape": "rect",
"label": null,
"rect": {
"class": null,
"x": null,
"y": null,
...
},
"text": {
"class": null,
"x": null,
"y": null,
...
}
function initArrayObj(){
...
}
function anotherFunction(){
...
}
}
如何复制所有内容,包括方法?因为在我复制了这个SquareObject之后,我将不得不改变位于arrayObj的属性,同时仍然保持其原始状态的副本。
我已经找到了克隆arrayObj内容的方法,但现在还不能完全解决我的问题。
谢谢!
var copyObj = arrayObj.constructor();
for (var attr in arrayObj) {
if (arrayObj.hasOwnProperty(attr)) {
copyObj[attr] = arrayObj[attr];
}
}
如果你想复制这个函数
var obj= Object.assign(SquareObject)
console.log(obj)
如果你想复制构造函数,那么
Person(){
this.age=20;
this.name='ignatius';
this.display = function(){
console.log(`Name : ${this.name} ${this.age}.`);
}
}
var copy = Object.assign(Person);
var obj = new Person();
console.log(obj.name)// 'ignatius'
这也适用于对象
var a= {
name: 'ignatius',
age: 2
}
var copy = Object.assign(a)
console.log(a.name ) // ignatius
相关文章:
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 循环遍历以数组为值的Javascript对象
- 从ajax请求中获取javascript对象
- 如何从对象的原型方法访问JavaScript对象属性
- 将XML转换为普通的旧JavaScript对象
- 通过引用传递JavaScript对象
- javascript对象操作:根据指定条件选择属性
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- 如何在异步函数中使用javascript对象
- 临时Javascript对象
- 如何在ASP中为用户控件添加Javascript对象网
- 使用数组向下搜索Javascript对象
- Rails将JavaScript对象存储到Model的有效方式
- JavaScript对象不是从原型链继承的
- 如何创建具有默认值的JavaScript对象字段?(AngularJS模型相关)
- SetInterval在javascript对象中表现怪异
- Javascript 对象和 this 关键字
- 如何在不知道关键字的情况下访问javascript对象值
- 在 JavaScript 对象中设置要使用的运算符的属性
- 如何搜索JavaScript对象并更改值