2015-11-21 7 views
7

ऐसा लगता है जैसे कि यह जावास्क्रिप्ट में एक समारोह का कोड प्राप्त करने के लिए संभव है, और यह रूप में सरल रूप में है कि:QML - एक स्ट्रिंग के रूप में एक जे एस समारोह के कोड हो रही

function foo() {...} 
foo.toString() 

हालांकि, कर रही क्यूएमएल में मुझे एक असंवेदनशील function() { [code] }

तो क्या [code] भाग भी प्राप्त करने का कोई तरीका है? मैंने JSON.stringify() भी कोशिश की लेकिन यह कोई अच्छा नहीं किया।

+0

यदि यह एक अंतर्निहित फ़ंक्शन है, तो कोड दिखाएगा उपयोगी नहीं होगा, क्योंकि यह संभवतः सी ++ में लिखा गया है। –

+0

मुझे प्रत्येक कार्य के लिए '[कोड]' मिलता है भले ही वे सी ++ या कस्टम उपयोगकर्ता जेएस फ़ंक्शन से बनाते हैं। – dtech

+0

यह आपके प्रश्न का उत्तर नहीं है, लेकिन मैं यहां एक चेतावनी फेंकना चाहता था। कार्य जावास्क्रिप्ट में अमूर्तता का मौलिक माध्यम है। मैं देख सकता हूं कि रनटाइम पर फ़ंक्शंस के कोड का निरीक्षण करने में सक्षम होने के लिए परीक्षण और टूलिंग के उद्देश्यों के लिए यह कैसे उपयोगी होगा, लेकिन यह अबास्ट्रक्शन बाधा को तोड़ देगा और कसकर युग्मित कोड का नेतृत्व कर सकता है जो बनाए रखना मुश्किल होगा। –

उत्तर

0

http://doc.qt.io/qt-5/qtqml-javascript-functionlist.html#function-objects

Function Properties 
    toString() 
    apply(thisArg, argArray) 
    call(thisArg [, arg1 [, arg2, ...]]) 
    bind((thisArg [, arg1 [, arg2, …]]) 

जे एस-कार्य के लिए, क्यूटी एक समारोह की स्ट्रिंग प्राप्त करने के लिए एक और विकल्प का समर्थन नहीं करता। लेकिन अगर आप समझते हैं कि आप इसे क्यों चाहते हैं तो हम एक और समाधान ढूंढ पाएंगे।

+0

आपका उदाहरण क्यूएमएल के बारे में भी नहीं है। – dtech

+0

हां, क्षमा करें। मैंने एक नया उत्तर – CoderPi

+0

ठीक किया, मैंने महत्वपूर्ण भाग – CoderPi

1

मैं टिप्पणियों में हुई चर्चा को जोड़ना चाहता हूं, क्योंकि यह भविष्य की खोजों के लिए एक अच्छी प्रतिक्रिया हो सकती है।

जैसा कि पहले से ही टिप्पणियों में कहा गया है, यह QML की एक उल्लेखनीय बग दिखता है। Here वे दावा करते हैं कि:

QML क्रम लागू करता ECMAScript भाषा विशिष्टता मानक

वैसे भी, यह वास्तव में नहीं है।

Meetfe के लिए धन्यवाद, here इस मुद्दे के बारे में खुली बग का लिंक है।

एक विस्तृत वर्णन के लिए, ECMA-262 विनिर्देश देखें:

वही त्रुटि जहां वे अधिक जानकारी के लिए संदर्भ को देखने के लिए सुझाव देते हैं, here हो रहा है।

यह (कम से कम, यह मेरे लिए लग रहा है) पूर्ण संगतता के दावे को और एक बार फिर यह मुझे एक बग के लिए लगता है, बल्कि विनिर्देशन का एक आंशिक कार्यान्वयन से बना देता है।

तो, दुर्भाग्य से यह एक फ़ंक्शन को स्ट्रिंग करने का इच्छित तरीका है (यह वास्तव में समझ में आता है, क्योंकि यह एक इमास्क्रिप्ट अनुपालन वातावरण है), लेकिन यह क्यूएमएल में सही ढंग से काम नहीं करता है, भले ही इसे दस्तावेज़ीकरण में कहा जाना चाहिए ।

संबंधित मुद्दे