मैं react-metaform पर काम कर रहा हूं, और मेरी चुनौतियों में से एक यह है कि मुझे अंत उपयोगकर्ता को मेटाडेटा को कार्यों के रूप में परिभाषित करने की अनुमति देने की आवश्यकता है। उदाहरण:मैं कैसे जांच सकता हूं कि कोई फ़ंक्शन एक शुद्ध कार्य है या नहीं?
socialSecurityNumber.required: (m) => m.type == 'person'
समस्या स्पष्ट है: मैं उपयोगकर्ता भरोसा नहीं कर सकते। शुद्ध समारोह होना चाहिए
- उपयोगकर्ता-परिभाषित प्रकार्य: तो, इन सावधानियों मैं बनाने की योजना बना रहा हूँ कर रहे हैं। इस अर्थ में, ये फ़ंक्शंस केवल उनके पैरामीटर तक पहुंच सकते हैं, और कुछ भी नहीं।
- उपयोगकर्ता परिभाषित फ़ंक्शंस ऐसे वातावरण में चलेंगे जो अपवादों के लिए लचीला है, बहुत लंबा निष्पादन समय और अनंत लूप। (मैं अभी इस बारे में चिंतित नहीं हूं)।
सवाल यह है: मुझे यकीन है कि एक उपयोगकर्ता परिभाषित समारोह केवल पहुँचता यह मानकों और कुछ नहीं है कैसे कर सकता हूँ?
मैं आपका सर्वश्रेष्ठ दांव ग्रहण करेंगे है अपनी खुद की अभिव्यक्ति भाषा कि पार्स किया गया है परिभाषित करने के लिए और फिर 'नया फ़ंक्शन' का उपयोग करने के बजाय, आपकी वास्तविक वस्तुओं पर मूल्यांकन किया गया। – Bergi
http://stackoverflow.com/questions/14889393/how-to-run-a-javascript-function-in-a-andbox-environment – epascarello
मुझे लगता है कि आप उस समय से उपयोगकर्ता को जेएस लिखने और इसे निष्पादित करने के लिए कह रहे हैं के लिए बहुत कुछ कर रहे हैं। आप लंबे निष्पादन के समय (रन-टू-पूर्णता, हाँ!) को रोक नहीं सकते हैं या यह सुनिश्चित कर सकते हैं कि फ़ंक्शन शुद्ध है (शायद पैरामीटर के माध्यम से बड़े पैमाने पर छायांकन के साथ, लेकिन यह अजीब होगा)। –