2012-11-17 28 views
6
$.each(data, function(i){ 
     _(catalog.add(this));//iterating through each object in objectStore 
}); 

मैं सोच रहा था कि अगर मैं फ़ंक्शन कॉल से पहले अंडरस्कोर को बाहर कर देता हूं तो इससे क्या अंतर होता है।फ़ंक्शन कॉल जोड़ने से पहले _ (अंडरस्कोर) में क्या अंतर होता है() बनाते हैं?

अद्यतन

ओपी jquery indexeddb plugin की चर्चा करते हुए किया गया है।

+1

फ़ंक्शन '_' की परिभाषा क्या है? यह JQuery से नहीं है; शायद यह अंडरस्कोर.जेएस से है लेकिन यह वास्तव में यहां घंटी बजती नहीं है। – Kos

उत्तर

5

यह _ नामक एक फ़ंक्शन को कॉल करता है और अभिव्यक्ति का परिणाम catalog.add(this) को पहले और एकमात्र तर्क के रूप में पास करता है।

यह फ़ंक्शन उस लाइब्रेरी द्वारा परिभाषित किया गया है जिसे आप underscorejs.org से डाउनलोड कर सकते हैं, जो लाइब्रेरीज़ की श्रृंखला में एक और है जिसमें परिवर्तनीय नामों को प्रकट करने का इरादा नहीं है।

+2

कृपया अंडरस्कोर के बारे में इतना अपमानजनक मत बनो; एक साधारण परिवर्तनीय नाम का उपयोग विवादास्पद हो सकता है लेकिन यह बिल्टिन प्रोटोटाइप को संशोधित करके विनाश के कारण भाषा का विस्तार करने का एक और उचित तरीका है। – Kos

+3

यह एक "सरल" चर नाम नहीं है, यह एक अस्पष्ट चर नाम है। यह कई लोगों को एक परिवर्तनीय नाम की तरह * देखो * नहीं दिखता है (शायद यही कारण है कि इस सवाल को पहले स्थान पर क्यों पूछा गया था)। – Quentin

+0

क्या आप तर्क देंगे कि '$' जैसा कि jQuery (और अन्य) मामले में बेहतर है या यहां तक ​​कि _good_ का उपयोग करना है? निजी तौर पर, मैं 'jQuery' से अधिक '$' पसंद करता हूं, फिर भी मैं '_' नहीं खड़ा हूं - मुझे लगता है कि यह गन्दा है। – Bojangles

0

http://underscorejs.org/#chaining

मैं बिल्कुल यकीन है कि अपने आप के लिए क्या कर नहीं कर रहा हूँ, लेकिन यहाँ डॉक है।

+0

यह एक नमूना कोड था जो मैं अनुक्रमणित डीबी से निपटने के लिए एक jquery प्लगइन के रूप में उपयोग करता था। https://github.com/axemclion/jquery-indexeddb/blob/master/example/index.html – Spinbad

+0

कैटलॉग ऑब्जेक्ट स्टोर नामक ऑब्जेक्ट है जो अनुक्रमित डीबी में एक प्रकार का टेबल है। catalog.add (यह) कुछ भी नहीं करता है लेकिन एक जेएसएस फ़ाइल के माध्यम से पुनरावृत्ति करते समय प्रत्येक मान जोड़ता है। मैं बस अंडरस्कोर रखने के पीछे कारण जानना चाहता हूं। एक मूर्ख सवाल हो सकता है। मैं एक नौसिखिया हूँ। मेरी अज्ञान क्षमा करें। – Spinbad

-1

संपादित करें:

लघु जवाब: हाँ, अलग नहीं। इसे हटा दो।

आपके स्रोत जेएस फ़ाइल से, _ वचन वस्तु के लॉगिंग परिणाम के लिए एक फ़ंक्शन नाम है। इसलिए यदि आपको add विधि वापसी की परवाह नहीं है तो आपको इसे उत्पादन कोड में निकालना होगा। add विधि को नव निर्मित कुंजी वापस करनी चाहिए।

मेरे लिए, उन $, i, _ और this समझ में नहीं आता है।

add(this) बहुत डरावना है। this क्या है?

+0

शायद मुझे पूरा कोड पोस्ट करना चाहिए था। यहां यह https://github.com/axemclion/jquery-indexeddb/blob/master/example/index.html – Spinbad

+0

@Kyaw है - आपने पूछा "यह क्या है?" यह एक जावास्क्रिप्ट कीवर्ड है जैसा कि [एमडीएन पर] समझाया गया है (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/this)। – nnnnnn

+0

'यह' कुछ वस्तु हो सकती है जिसे क्लोन नहीं किया जा सकता है, जैसे कि डोमेलेमेंट। उस मामले में Indexeddb DataCloneError फेंक देगा। मेरी राय, 'जोड़ें (यह)' आम तौर पर टालना चाहिए। –

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

  • कोई संबंधित समस्या नहीं^_^