【发布时间】:2018-09-28 17:18:46
【问题描述】:
我正在创建一个 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
【问题讨论】:
-
I'm creating a copy of a JS object in order to perform functions on the copy.你是怎么复制的?any ideas如果您执行了JSON.stringify->JSON.parse,那么这就是您的问题。 JSON中没有函数,所以“副本”在做成那种格式后就没有了。 -
能否在您的问题中添加一个 code-sn-p,其中包含您用于复制对象的代码?
-
忘记加代码了哈哈,马上更新
-
我添加了一个简单的例子来表达我的问题
标签: javascript function object copy