2012-03-07 10 views
6

हम सभी जानते हैं कि डीओएम को कॉल कैश करना अच्छा है, इसलिए $ ('# someElement') को अधिक बार कॉल करने के बजाय, इसे केवल एक var $ someElement में सहेजें और इसका उपयोग करें।

लेकिन उदाहरण के लिए एक ईवेंट श्रोता के अंदर $ (यह) का उपयोग करते समय यह वही है? $ (यह) कैश किया जाना चाहिए?

धन्यवाद।

+2

मुझे संदेह है कि यह पूरी तरह से '$ (यह)' के लिए उपयोग पैटर्न पर निर्भर करता है। –

उत्तर

5

की तरह कुछ करने के लिए हर बार जब आप $(this) या $(selector) फोन बेहतर है ... इसलिए आप पहले से ही बनाया है, तो यह एक बार, कैशिंग एक ही ऑब्जेक्ट को फिर से बनाने के लिए एक फ़ंक्शन को कॉल करने से बचाएगा

+0

धन्यवाद, चार्ली। – Francisc

2

यदि आप ईवेंट फ़ंक्शन में बाद में उसी तत्व का संदर्भ लेते हैं, तो हाँ। फ़ंक्शन के बाहर ऐसा करने का कोई अर्थ नहीं है क्योंकि this का मान बदल जाएगा।

+0

धन्यवाद, डायोडियस। – Francisc

7

यदि आप $(this) कई बार कहते हैं, यह एक समारोह कॉल एक नया jQuery वस्तु बनाने के लिए है var $this = $(this);

+0

क्या प्रदर्शन लाभ है या यह केवल वर्णों को सहेजने के लिए है (2 प्रति उपयोग)? – Tx3

+0

@ टीएक्स 3 नहीं, यह केवल वर्णों को सहेजने के लिए नहीं है, यह फ़ंक्शन कॉल सहेज रहा है। जब आप '$ (यह)' करते हैं तो आपने हर बार फ़ंक्शन कॉल किया था। – xdazz

+0

यकीन है, मैं बस सोच रहा था कि यह "रैपिंग" करते समय यह किस तरह का ऑपरेशन कर रहा है। वैसे भी, जैसा कि आपने सुझाव दिया है, मैं इसका उपयोग कर रहा हूं, इसलिए यह केवल जिज्ञासा थी। – Tx3

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