2011-12-26 8 views
6

मैं jQuery चयनकर्ताओं के डीबगिंग और वापसी मानों की अनुमति देने के लिए jQuery "jQueryLog" के लिए एक प्लगइन विकसित कर रहा हूं। आप इसे बाहर की जाँच करना चाहते हैं, तो आप इसे hereजावास्क्रिप्ट सर्वोत्तम प्रथाओं, चेन फ़ंक्शन/परिवर्तनीय घोषणाओं के लिए अल्पविराम का उपयोग क्यों करें?

यह पहले से ही एक दूसरा संस्करण है कर सकते हैं। पहला संस्करण वास्तव में एक संपादित jQuery था और इसे करने के दौरान मुझे आंतरिक रूप से काम करने के तरीके को समझने के लिए jQuery को पढ़ना पड़ा। सवाल ही नहीं से आता है:

var jQuery = function(selector, context) { 
     // The jQuery object is actually just the init constructor 'enhanced' 
     return new jQuery.fn.init(selector, context, rootjQuery); 
    }, 

    // Map over jQuery in case of overwrite 
    _jQuery = window.jQuery, 

    // Map over the $ in case of overwrite 
    _$ = window.$, 

    // A central reference to the root jQuery(document) 
    rootjQuery, 

    // A simple way to check for HTML strings or ID strings 
    // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) 
    quickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/, 
    (...) 

वहाँ के लिए किसी भी बड़ा कारण है घोषणाओं + "अल्पविराम" की एक श्रृंखला का उपयोग कर के बजाय सिर्फ का उपयोग कर:

function jQuery (selector, context) { ... } 

var _jQuery = window.jQuery; 
var _$ = window.$; 
etc... 

एकमात्र कारण मैं यहाँ देखने के लिए है कम से कम अक्षर के लिए minifier कि कटौती नहीं किया जा सकता है। लेकिन क्या कोई अन्य कारण हैं?

+1

पढ़ें इस [कड़ी] (http://stackoverflow.com/questions/3781406/javascript-variable-definition-commas-vs-semicolons) –

+2

मैं नहीं जानता कि कभी भी है 'var' से अधिक का उपयोग करने के लिए अल्पविराम एक उद्योग 'सर्वश्रेष्ठ अभ्यास' घोषित किया गया है। सबसे अच्छा, यह एक स्टाइलिस्ट वरीयता है। मुझे आपके द्वारा प्रदान किए जा सकने वाले किसी भी लेख को पढ़ने में दिलचस्पी होगी जो इसे सर्वोत्तम अभ्यास के रूप में वकालत करता है। –

+0

@ रोनक आप क्यों नहीं कहते कि यह एक डुप्लिकेट प्रश्न है? – kojiro

उत्तर

5

यह जबकि सुनिश्चित करें कि वे इससे पहले कि वे परिभाषित कर रहे हैं उपयोग नहीं कर रहे बनाने समारोह दायरे में सभी चर रखने के लिए सिर्फ एक छोटा रास्ता नहीं है।

JavaScript Patterns (सितम्बर 2010, ओ रेली) में, Stoyan Stefanov यह कहता है एकल var पैटर्न:

जावास्क्रिप्ट एक समारोह में कहीं भी कई वार बयान के लिए सक्षम बनाता है, और वे सभी कार्य करते हैं जैसे कि फ़ंक्शन के शीर्ष पर चर घोषित किए गए थे। यह व्यवहार hoisting के रूप में जाना जाता है। ... आप एक var कथन का उपयोग करते हैं और अल्पविरामों द्वारा सीमित एकाधिक चर घोषित करते हैं। जब आप इसे घोषित करते हैं तो प्रारंभिक मान के साथ वैरिएबल को प्रारंभ करना भी एक अच्छा अभ्यास है। यह तार्किक त्रुटियों को रोकने के कर सकते हैं और यह भी कोड पठनीयता में सुधार (सभी अप्रारंभीकृत और घोषित चर मूल्य undefined साथ प्रारंभ कर रहे हैं)।

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