मैं एक जावास्क्रिप्ट वस्तु कोड नीचे के रूप में बनाने के लिए:जावास्क्रिप्ट: स्ट्रिंग के रूप में बाहर कोष्ठक वापसी के पूरे समारोह के साथ एक समारोह बुला
var obj={
a : 10,
b : 20,
add : function(){
return this.a + this.b;
},
};
मैं इस कोड obj.add
साथ समारोह निष्पादित और इसे इस तरह स्ट्रिंग के रूप में पूरे समारोह वापसी : -
function(){
return this.a + this.b;
लेकिन बाद में मैं कोशिश करके फिर से obj.add()
तरह कोष्ठक सहित फ़ंक्शन को कॉल करें और यह मूल्य 30. यहाँ मैं समझ नहीं सकता मैं क्यों मिल लौट ऐसे बाहर विभिन्न 012 के साथ समारोह बुला पर डालऔर obj.add()
? एक ऑब्जेक्ट को कॉल करने के बीच मुख्य अंतर क्या है जो ब्रांड्स के साथ काम करता है और बाहर ब्रांड्स के साथ क्या कोई शरीर मदद कर सकता है ??
आप कर सकते हैं नहीं * कॉल * कोष्टक के बिना एक समारोह। '()' जोड़ना यह है कि आप फ़ंक्शन को कैसे कॉल करते हैं। '()' के बिना, आप केवल कार्य ही प्राप्त कर रहे हैं। जावास्क्रिप्ट में, फ़ंक्शंस केवल चर होते हैं, जैसे स्ट्रिंग्स या इनट्स या जो भी हो। –
'एड' [एक 'फंक्शन' ऑब्जेक्ट] है (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function)। जब आप इसे बिना किसी कंस्ट्रैसिस के उपयोग करते हैं, तो आप * सबसे अधिक संभावना * कॉलर के [टाइप जबरन] के माध्यम से इसे 'स्ट्रिंग' में परिवर्तित कर सकते हैं (http://stackoverflow.com/questions/19915688/what-exactly-is-type- coercion-in-javascript) – blgt
लेकिन जैसा कि मैं dev उपकरण में देखता हूं, मैं obj.add को कॉल करके मुझे ऑब्जेक्ट नहीं मिल रहा है, लेकिन कट्टरपंथी स्ट्रिंग। मुझे यह – ambes