cross browser - Javascript unable to pass parameters into a property acting as a function -


वर्तमान में एक सरल रूप में, मेरा कोड इस तरह दिखता है

  function AddFileParam (file_id, Name, value) {uploadcontrol.AddFileParam (file_id, name, value)} uploadcontrol = नया अपलोड () फ़ंक्शन अपलोड () {// logic} अपलोड.प्रोटोटाइप.एडफ़ाइलपाराम = समारोह (file_id, name, value) {// logic} ;  

कोड मुझे एक त्रुटि दे रहा है क्योंकि यह बताता है कि addFileParam एक मान्य फ़ंक्शन नहीं है। यह फ़ंक्शन अपलोड (उर्फ uploadcontrol) के उदाहरण के कारण होता है। यह केवल फ़ायरफ़ॉक्स / क्रोम में हो रहा है और IE में नहीं है कोई राय कि इसे कैसे ठीक किया जाए?

यदि वैश्विक AddFileParam () फ़ंक्शन को निष्पादन से पहले कहा जाता है < कोड> अपलोड.प्रोटोटाइप.एडफ़ाइलपाराम = ... लाइन फिर अपलोड प्रोटोटाइप में अभी तक एक AddFileParam विधि नहीं होगा।

जावास्क्रिप्ट ऊपर से नीचे तक चलाता है अपवाद यह है कि फ़ंक्शन declaration statements जैसे फ़ंक्शन अपलोड () {...} बाकी स्क्रिप्ट चलाने से पहले 'फहराया' और परिभाषित किया जाता है। कंस्ट्रक्टर फ़ंक्शन के बाद Upload.prototype.member = लाइन, हालांकि, फहराया नहीं है, और सामान्य स्क्रिप्ट आदेश में चलाता है।

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


Comments