无法调用复制的JS对象的函数

时间:2018-09-28 17:18:47

标签: javascript function object copy

我正在创建JS对象的副本,以便对该副本执行功能。但是,我无法调用复制对象中的函数,只是得到一个错误,指出该实例中不存在这些函数,有什么想法吗?

编辑:这是代码

obj.isGridStateSolvable();
let tempobj = jQuery.extend(true, {}, obj);
tempobj.isGridStateSolvable();

第一行工作正常,该功能可访问,但是第三行不可用。

编辑2:这是一个可测试的示例

class Num{
    constructor(numParam){
        this.number = numParam;
    }

    incrementNum(){
        this.number++;
    }
}

var num1 = new Num(5);
num1.incrementNum();

console.log(num1); //Outputs 6 as expected

let num2 = jQuery.extend(true, {}, num1);
num2.incrementNum();    //This function does not exist

2 个答案:

答案 0 :(得分:0)

您可以尝试使用JS传播。

let tempobj = { ...obj };

这是ES的一项新功能,非常适合JS对象复制。

答案 1 :(得分:0)

npm上有几个项目会将JS中对象的状态复制到新的目标类/模块中,这意味着这些功能将可用。

这里有一些