Невозможно вызвать функции скопированного объекта JS - PullRequest
0 голосов
/ 28 сентября 2018

Я создаю копию объекта JS для выполнения функций над копией.Однако я не могу вызвать функции в скопированном объекте, я просто получаю сообщение об ошибке, в котором говорится, что функции в этом случае не существуют, какие-либо идеи?

edit: вот код

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

Первая строка работает правильно, а функция доступна, а третья - нет.

edit 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 голосов
/ 19 мая 2019

На npm есть несколько проектов, которые будут копировать состояние объекта в JS в новый класс / модуль назначения, что означает, что функции будут доступны.

вот несколько

0 голосов
/ 28 сентября 2018

Вы можете попробовать использовать JS-распространение.

let tempobj = { ...obj };

Это новая функция от ES, которая очень хорошо работает для копирования объектов JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...