2012-01-12 16 views
12

php में मैं निम्नलिखितसमारोह लिखने समारोह में मौजूद नहीं है, तो - जावास्क्रिप्ट

<?php 
if(x != 0) { 
echo "function myfunction(){};";  
} 
?> 

जावास्क्रिप्ट में मैं समारोह मौजूद है और अगर परीक्षण करना चाहते हैं लिख रहा हूँ नहीं तो एक खाली समारोह लिखने

if(typeof myfunction != 'function'){ 
    function myfunction(){}; 
} 

यह फ़ायरफ़ॉक्स में बहुत अच्छा काम करता है, लेकिन क्रोम में भी टाइपफॉफ़ फ़ंक्शन के बराबर होता है, फिर भी यह खाली फ़ंक्शन में जाता है और बनाता है। मुझे क्रोम के लिए एक काम नहीं मिल रहा है, मैंने कोशिश की है कि (! Myfunction), अगर (typeof window.myfunction! = 'Function) लेकिन क्रोम के लिए कुछ भी काम नहीं करता है जब सब कुछ फ़ायरफ़ॉक्स में काम करता है। कोई विचार?

+0

अभी भी कोई जवाब नहीं है? मुझे एक ही समस्या है और नीचे का समाधान मेरे लिए काम नहीं करता है। –

उत्तर

29

एक फ़ंक्शन अभिव्यक्ति का उपयोग करें, फ़ंक्शन घोषणा नहीं।

if(typeof myfunction != 'function'){ 
    window.myfunction = function(){}; 
} 

(मैं window उपयोग कर रहा हूँ के बाद से अपने पिछले पैराग्राफ पता चलता है कि आप एक वैश्विक समारोह चाहते हैं)

+0

यह पूरी तरह से काम किया –

+0

उत्तर के रूप में चिह्नित करें? – folktrash

+0

@BretThomas यदि यह काम करता है तो कृपया इसे उत्तर के रूप में चिह्नित करें। –

6

आप सख्त तुलना ऑपरेटर का उपयोग करना चाहिए! ==

if(typeof myFunction !== 'function'){ 
    window.myFunction = function(){}; // for a global function or 
    NAMESPACE.myFunction = function(){}; // for a function in NAMESPACE 
} 

इसके अलावा जे एस कार्यों रखने की कोशिश नामस्थानों के अंदर, इस तरह आप भविष्य में अन्य जेएस पुस्तकालयों के साथ टकराव से बचें।

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