我正在创建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
答案 0 :(得分:0)
您可以尝试使用JS传播。
let tempobj = { ...obj };
这是ES的一项新功能,非常适合JS对象复制。
答案 1 :(得分:0)
npm上有几个项目会将JS中对象的状态复制到新的目标类/模块中,这意味着这些功能将可用。
这里有一些