वैश्विक कार्यों के लिए आप किसी एक evalउत्तर में सुझाए गए के बजाय इसका उपयोग कर सकते हैं ।
var global = (function (){
return this;
})();
if (typeof(global.f) != "function")
global.f = function f1_shim (){
// commonly used by polyfill libs
};
आप के global.f instanceof Functionरूप में अच्छी तरह से उपयोग कर सकते हैं , लेकिन afaik। Functionअलग-अलग फ्रेम में वसीयत का मूल्य अलग-अलग होगा, इसलिए यह केवल एकल फ्रेम एप्लिकेशन के साथ ठीक से काम करेगा। इसलिए हम आमतौर पर typeofइसके बजाय उपयोग करते हैं। ध्यान दें कि कुछ वातावरणों में typeof fउदाहरण के लिए MSIE 6-8 द्वारा कुछ कार्यों के साथ विसंगतियां भी हो सकती हैंalert में "ऑब्जेक्ट" प्रकार था।
स्थानीय कार्यों द्वारा आप स्वीकृत उत्तर में एक का उपयोग कर सकते हैं। आप परीक्षण कर सकते हैं कि फ़ंक्शन स्थानीय है या वैश्विक भी।
if (typeof(f) == "function")
if (global.f === f)
console.log("f is a global function");
else
console.log("f is a local function");
प्रश्न का उत्तर देने के लिए, उदाहरण कोड नवीनतम ब्राउजर में त्रुटि के बिना मेरे लिए काम कर रहा है, इसलिए मुझे यकीन नहीं है कि इसके साथ क्या समस्या थी:
function something_cool(text, callback) {
alert(text);
if( callback != null ) callback();
}
नोट: मैं callback !== undefinedइसके बजाय का उपयोग करेगा callback != null, लेकिन वे लगभग एक ही है।