Я пытаюсь передать различные объекты веб-работнику, и у них есть пользовательские строковые методы. Но это не соответствует алгоритму структурированного клона
пример
g = {"coordinates":[[-94.07818059402895,-61.057321322937256]],"type":"MultiPoint"}
g.toString = function(){return JSON.stringify(this)}
Не удалось выполнить 'postMessage' для 'Worker': function> objectToString () {
return JSON.stringify (this);
} не может быть клонирован
Если я изменяю proto , я получаю желаемые результаты (вид), он проходит алгоритм структурированного клона, но это изменяет Object.prototype
Я попытался использовать прокси, и это дает мне нужную строку, но не передает структурированный клон веб-работнику.
p = new Proxy({
"coordinates": [
[-94.07818059402895, -61.057321322937256]
],
"type": "MultiPoint"
}, {
get: function(obj, prop) {
if (prop === "toString") {
return () => {
return JSON.stringify(obj);
};
}
return obj[prop];
}
})
'postMessage' для 'Worker': [объект Object] не может быть клонирован.
Можно ли получить оба желаемых результата, не проверяя каждый объект, который я передаю?