【问题标题】:how to copy all properties and methods of an object in javascript? [duplicate]如何在javascript中复制对象的所有属性和方法? [复制]
【发布时间】:2021-01-09 06:46:14
【问题描述】:

我已阅读how to clone objects in javascript 并且知道如何从对象中复制属性。但是我不仅想复制对象的属性,而且还希望复制的对象具有父对象所具有的所有方法,但我无法弄清楚如何:

这是发生了什么:

var obj = {
    'firstname' : "Harsh",        // <<< Parent object
    'lastnmae'  : "singh",

    introduce() {
        console.log("Hello I am " + this.firstname);
    }
}

var objCopy = JSON.parse(JSON.stringify(obj));   // deep copying the parent object

obj.introduce();  // << works fine when called on the parent object
objCopy.introduce(); // << does not work
                     // but I thought objCopy is the copy of obj ???

编辑:我不想要浅拷贝,我想要对象的深拷贝。我遇到的大多数方法只复制属性而不是函数。我浏览了其他文章,但没有找到任何答案。

【问题讨论】:

  • 函数不能用 JSON 序列化。
  • 我不明白你的问题。该问题有几十个答案,其中大多数不使用 JSON。 JSON 的答案清楚地表明,如果对象包含函数,它们将不起作用。
  • 看到这个Clone The Object

标签: javascript oop object


【解决方案1】:

您可以使用这样的类来做到这一点:

class  Obj  {
    constructor() {
    this.firstname = "Harsh",
    this.name = 'singh',     

    this.introduce=function() {
        console.log(`Hello I am ${this.firstname}`);
    } 
   }
  }

  var a=new Obj()

  console.log(a.introduce())

【讨论】:

    猜你喜欢
    • 2019-01-31
    • 2019-08-27
    • 1970-01-01
    • 2020-01-09
    • 2013-09-10
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 2012-03-10
    相关资源
    最近更新 更多