वैश्विक कार्यों के लिए आप किसी एक 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
, लेकिन वे लगभग एक ही है।