আমি জানি কিভাবে কীভাবে JSON স্ট্রিংকে পার্স করতে এবং এটিকে একটি জাভাস্ক্রিপ্ট অবজেক্টে রূপান্তর করতে হবে। আপনি JSON.parse()
আধুনিক ব্রাউজারগুলিতে (এবং আই 9 +) ব্যবহার করতে পারেন ।
এটি দুর্দান্ত, তবে আমি কীভাবে সেই জাভাস্ক্রিপ্ট অবজেক্টটি নিয়ে একটি নির্দিষ্ট জাভাস্ক্রিপ্ট অবজেক্টে (অর্থাত্ একটি নির্দিষ্ট প্রোটোটাইপ সহ) রূপান্তর করতে পারি ?
উদাহরণস্বরূপ, ধরুন আপনার কাছে রয়েছে:
function Foo()
{
this.a = 3;
this.b = 2;
this.test = function() {return this.a*this.b;};
}
var fooObj = new Foo();
alert(fooObj.test() ); //Prints 6
var fooJSON = JSON.parse({"a":4, "b": 3});
//Something to convert fooJSON into a Foo Object
//....... (this is what I am missing)
alert(fooJSON.test() ); //Prints 12
আবার, আমি কীভাবে জেএসএন স্ট্রিংটিকে জেনেরিক জাভাস্ক্রিপ্ট অবজেক্টে রূপান্তর করব তা ভাবছি না। আমি জেএসএন স্ট্রিংকে কীভাবে "ফু" অবজেক্টে রূপান্তর করতে চাই তা জানতে চাই। অর্থাত, আমার অবজেক্টের এখন একটি ফাংশন 'পরীক্ষা' এবং বৈশিষ্ট্যগুলি 'এ' এবং 'বি' হওয়া উচিত।
আপডেট কিছু গবেষণা করার পরে, আমি এই ভেবেছিলাম ...
Object.cast = function cast(rawObj, constructor)
{
var obj = new constructor();
for(var i in rawObj)
obj[i] = rawObj[i];
return obj;
}
var fooJSON = Object.cast({"a":4, "b": 3}, Foo);
কাজ করবে?
আপডেট মে, 2017 : এটি করার "আধুনিক" উপায়টি হল Object.assign
, তবে এই ফাংশনটি আইই 11 বা পুরানো অ্যান্ড্রয়েড ব্রাউজারগুলিতে উপলব্ধ নয়।