Свойство instanceof потеряно при передаче данных - PullRequest
0 голосов
/ 21 апреля 2020

Я создаю объект Feature, как показано в файле 1. js и передаю его в качестве параметра функции, которая существует в другом файле file2. js

const f = new Feature();
console.log(f instanceof Feature) //returns true;
const data = encodeDatatoJson (f);

Принимая во внимание, когда это " f "поступает в файл 2. js, instanceof возвращает false.

const jsonData = {};
encodeDatatoJson = (f) => {
     if(f instanceof Feature){ //returns false;
         jsonData.f.push(geoJSON.writeFeatureObject(f));
    }
}

Что может быть возможной причиной.

1 Ответ

0 голосов
/ 21 апреля 2020

JSON .stringify или все, что использует его внутри, не сможет отслеживать прототип. Вы должны сделать это сами:

encodeDatatoJson = (f) => {
   Object.setPrototypeOf(f,Feature);  //you can use __proto__ in webkit browsers
   jsonData.f.push(geoJSON.writeFeatureObject(f));
}

Имейте в виду, что при строковом преобразовании вы потеряете не перечисляемые свойства, и тонны вещей могут go ошибаться при установке прототипа, подобного этому.

...