वहाँ छह तरीके/संदर्भों जिसमें कार्यों बनाने के लिए कर रहे हैं:
1) स्टैंडर्ड कथात्मक संकेतन (के लिए सबसे परिचित सी पृष्ठभूमि वाले लोग)
function foo() {}
2) (एक वस्तु शाब्दिक
var obj = {
foo: function() {}
};
3) एक instantiated वस्तु की एक विधि के रूप में करने की एक विधि हर बार new
exectued है)
बनाया के रूप में:सभी बाकी समारोह
भाव हैं
var Obj = function() {
this.foo = function() {};
};
4) एक प्रोटोटाइप की एक विधि के रूप में (चाहे कितनी बार new
निष्पादित किया जाता है की केवल एक बार बनाया,)
+०१२३५१६४१०६१
var Obj = function() {};
Obj.prototype.foo = function() {};
5) एक संदर्भ (एक ही प्रभाव # 1 के रूप) *
var foo = function() {};
6) के रूप में एक तुरंत मार डाला गुमनाम समारोह (पूरी तरह से गुमनाम) के साथ एक गुमनाम समारोह के रूप में
(function() {})();
* जब मैं इस कथन को देखता हूं, मैं परिणाम मानता हूं। इस प्रकार, मैं वास्तव में इन्हें अनाम के रूप में नहीं मानता, क्योंकि फ़ंक्शन को तुरंत संदर्भ दिया जाता है और इसलिए अब अज्ञात नहीं है। लेकिन यह ज्यादातर लोगों के लिए समान है।
स्रोत
2009-12-08 10:55:43
'ओब्जे' पर बाहरी संश्लेषण अनावश्यक –
ओह है! मॉड्यूल पैटर्न का उपयोग करके कोड लिखने के बारे में SO में मेरी एक पोस्ट का जवाब ने कहा कि उन कंस्ट्रैसिस के बिना, कभी-कभी अज्ञात फ़ंक्शन विफल हो सकते हैं। मुझे अभी भी एक स्पष्टीकरण क्यों नहीं मिला। सुनिश्चित नहीं है कि वे केवल मॉड्यूल पैटर्न या सभी अज्ञात कार्यों पर लागू होते हैं या नहीं। यही कारण है कि मैंने उन्हें जोड़ा। –
मुझे लगता है कि जब आप 'eval ("({a: 1})" जैसे किसी ऑब्जेक्ट को eval करते हैं तो " – YOU