2012-03-08 11 views
91

परिभाषित करने से पहले उपयोग किया गया था हाय मेरे पास 3 जावास्क्रिप्ट फ़ाइलें हैं।जेएसलिंट: इसे

  • jquery.js
  • utility.js
  • file1.js

file1.js में मैं

jQuery.noConflict() 
jQuery(document).ready(function($) { 
// .... 
}); 

मैं एक त्रुटि 'jQuery' से पहले इस्तेमाल किया गया था प्राप्त है यह परिभाषित किया गया था। और 'दस्तावेज़' का उपयोग इसे परिभाषित करने से पहले किया गया था।

मैं सुरक्षित रूप से इस चेतावनी से कैसे छुटकारा पा सकता हूं।

अगर मैं अपने utility.js में

var document = document || {}; 

तो अगर यह प्रयोग किया जाता है, यह IE में बातिल और फ़ायरफ़ॉक्स में ठीक हो जाएगा।

इसका सबसे अच्छा समाधान क्या है?

+0

[जेएस लिंट: 'शॉर्टकट' का संभावित डुप्लिकेट परिभाषित होने से पहले उपयोग किया गया था] (http://stackoverflow.com/questions/8134049/js-lint-shortcut-was-used-before-it-was-defined)। साथ ही, सुनिश्चित करें कि आपके पास विकल्प में चयनित * ब्राउज़र चुनें *। –

+0

@ChunpingWang नोट किया गया कि आप अभी भी SO पर सक्रिय थे और इस प्रश्न में एक स्वीकृत उत्तर गुम था। क्या इनमें से किसी भी उत्तर में कुछ ऐसा याद आ रहा है जिसे उन्हें स्वीकार्य बनाने के लिए जरूरी है? ऐसा लगता है जैसे क्वांटिन का जवाब पूछा गया समस्या हल करेगा। आपके प्रश्न का उत्तर देने के लिए आवश्यक कोई अतिरिक्त जानकारी? – ruffin

उत्तर

167

the documentation से

JSLint भी किसी/* वैश्विक */निर्देश है कि JSLint को इंगित कर सकते हैं कि इस फाइल में इस्तेमाल किया चर अन्य फ़ाइलों में परिभाषित किया गया पहचानता है। टिप्पणी में नामों की अल्पविराम से अलग सूची हो सकती है। प्रत्येक नाम वैकल्पिक रूप से एक कोलन द्वारा किया जा सकता है और या तो सत्य या गलत, सच यह इंगित करता है कि चर को इस फ़ाइल द्वारा असाइन किया जा सकता है, और यह संकेत देता है कि असाइनमेंट की अनुमति नहीं है (जो डिफ़ॉल्ट है)। निर्देश समारोह के दायरे का सम्मान करता है।

कुछ ग्लोबल्स आपके लिए पूर्वनिर्धारित किए जा सकते हैं। दस्तावेज़ और addEventListener जैसे वेब ब्राउज़र द्वारा प्रदान की जाने वाली मानक वैश्विक गुणों को पूर्वनिर्धारित करने के लिए ब्राउज़र (ब्राउज़र) विकल्प का चयन करें।

उदाहरण:

/*jslint browser: true*/ 
/*global $, jQuery*/ 
+25

नोट: आप 'वैश्विक' से पहले कोई स्थान नहीं डाल सकते हैं, इसलिए '/ * वैश्विक var, var2 * /' काम नहीं करता है।'/ * वैश्विक var, var2 * /' काम – radixhound

+4

बहुवचन समकक्ष है और साथ ही साथ काम करता है: '/ * ग्लोबल्स * /' और चर के –

+2

की सूची जोड़ते समय और अधिक समझ में आता है तो JSLint का समाधान सभी से कुछ याद करने की शिकायत करता है आपकी फाइलों में से यह आपकी सभी फाइलों में एक लाइन जोड़ने के लिए ... यह भयानक सलाह है। – Cerin

29

क्वेंटिन कहते हैं, वहाँ एक /*global*/ निर्देश है।

/*global var1,var2,var3,var4,var5*/ 

सुनिश्चित करें कि प्रारंभिक वैश्विक बयान /* रूप में एक ही लाइन पर है, वरना यह टूट जाता है:

यहाँ एक उदाहरण (फ़ाइल के शीर्ष पर डाल) है।

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