আমার কাছে একটি অ্যাপ্লিকেশন রয়েছে যা একটি ওয়েবকিট-জিটিকে ব্রাউজারে জাভাস্ক্রিপ্টের মাধ্যমে জাভাস্ক্রিপ্ট প্রসারিত করে। এই মুহূর্তে আমার বেশ কয়েকটি ক্লাস রয়েছে যা আমি বিশ্বব্যাপী প্রসঙ্গে যুক্ত করেছি:
void create_js(gpointer context, char* className, JSClassDefinition clasDefinition) {
JSClassRef classDef = JSClassCreate(&clasDefinition);
JSObjectRef classObj = JSObjectMake(context, classDef, context);
JSObjectRef globalObj = JSContextGetGlobalObject(context);
JSStringRef str = JSStringCreateWithUTF8CString(className);
JSObjectSetProperty(context, globalObj, str, classObj, kJSPropertyAttributeNone, NULL);
JSStringRelease(str);
}
এখন, আমি ওয়েব ওয়ার্কারের প্রসঙ্গে সেই ক্লাসগুলি যুক্ত করতে চাই, তাই আমি জেএসে তাত্ক্ষণিকভাবে কর্মীদের কাছ থেকে তাদের কল করতে পারি।
আমি Worker
বস্তুটি এভাবে পাওয়ার চেষ্টা করেছি :
JSStringRef workerStr = JSStringCreateWithUTF8CString("Worker");
JSObjectRef worker = JSObjectGetProperty(context, globalObj, workerStr, NULL);
JSObjectSetProperty(context, worker, str, classObj, kJSPropertyAttributeNone, NULL);
JSStringRelease(workerStr);
কিন্তু এটি এটিতে যুক্ত করে WorkerConstructor
এবং যখন একটি new Worker()
ডাকা হয় তখন ক্লাসগুলি উপলব্ধ হয় না।
Worker
শ্রেণি সংজ্ঞায় নতুন নির্মিত শ্রেণিকে যুক্ত করার চেষ্টা করছেন । সাধারণত আপনার ক্লাসটি গ্লোবাল অবজেক্টে এবং প্রতিটি গ্লোবাল অবজেক্টে একটি নতুন তৈরি জেএস ভার্চুয়ালমাচিনে যুক্ত করা দরকার। এটির বৈশ্বিক প্রসঙ্গ এবং বৈশ্বিক অবজেক্টের সাথে Worker
একটি নতুন তৈরি করবে JSVirtualMachine
; একটি সম্পূর্ণ