传递数据时“ instanceof”属性丢失

我正在file1.js中创建所示的Feature Object,并将其作为参数传递给另一个文件file2.js中存在的函数

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

相反,当此“ f”到达file2.js时,instanceof返回false。

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

可能是什么原因。

yynnn 回答:传递数据时“ instanceof”属性丢失

JSON.stringify或内部使用它的任何内容将无法跟踪原型。您必须自己做:

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

请注意,在字符串化过程中,您将失去不可枚举的属性,而在设置原型时可能会出错。

本文链接:https://www.f2er.com/2394993.html

大家都在问