2014-05-23 6 views
17

सख्त मोड में अपने कोड चल रहा जावास्क्रिप्ट घटनाक्रम में जोड़कर: अपने कार्यों की शुरुआत करने के लिएक्या मुझे अपनी उल्का फाइलों में "सख्त उपयोग" जोड़ना चाहिए?

"use strict"; 

एक आम सबसे अच्छा अभ्यास है। हालांकि मुझे अभी तक किसी उल्का आवेदन में ऐसा करने के लिए नहीं देखा है।

इस सर्वोत्तम प्रक्रिया उल्का पर लागू नहीं होता?

शायद यह एक उच्च स्तर पर सख्त मोड सेट क्योंकि? मुझे पता है कि इसे लागू करने के लिए नोड को --use-hard कमांड लाइन पैरामीटर के साथ चलाया जा सकता है। लेकिन मुझे क्लाइंट में ऐसा करने का कोई तरीका नहीं पता है।

उत्तर

7

उल्का में "use strict" का उपयोग अभी भी एक अच्छा अभ्यास है - यह सब के बाद जावास्क्रिप्ट है।

+1

आप इस पर विस्तार कर सकता है? उदाहरण के लिए, इसे प्रत्येक फ़ाइल के शीर्ष पर जोड़ा जाना चाहिए, या क्या मेटर ऐप में सभी जावास्क्रिप्ट स्रोत के लिए 'सख्त उपयोग' को मजबूर करना संभव है? –

+0

हां, इसे प्रत्येक फ़ाइल के शीर्ष पर जोड़ा जाना चाहिए जहां आप सख्त मोड सक्षम करना चाहते हैं। –

+0

संबंधित सुविधा अनुरोध: [उल्का रन - स्ट्रिक्ट के साथ वैश्विक स्तर पर सख्त मोड लागू करें] (https://github.com/meteor/meteor/issues/3510) –

13

दो विकल्प है कि मैं जानता हूँ कि, यदि आप अपने उल्का फ़ाइलों के शीर्ष पर 'use strict' करना चाहते हैं।

// first file 
APP = {}; 

// later file 
'use strict'; 

APP.Stuff = new Mongo.Collection('stuff'); 
APP.Stuff.find({}); 

दूसरा:

पहले अपने शीर्ष उल्का फ़ाइलों में से एक में APP की तरह एक वैश्विक चर को परिभाषित करने के लिए (और strict मोड में नहीं), तो आपका पहले से वैश्विक चर के सभी नाम स्थान के लिए इसका इस्तेमाल है विधि है कि पहली फ़ाइल में एक वैश्विक अन्य नाम बनाना है:

// first file 
G = this; 

// second file 
'use strict'; 

G.Stuff = new Mongo.Collection('stuff'); 
Stuff.find({}); 

बाद के लाभ यह है कि आप टाइप करने के लिए App. की आवश्यकता नहीं है - हर बार जब आप अपने "वैश्विक" संदर्भ का उपयोग करना चाहते — वे अभी भी वैश्विक रूप में काम करते हैं, और आप केवल G. उपयोग करने की आवश्यकता - अपने घोषणाओं के लिए एक बार —।

+0

मुझे यह पसंद है, साझा कार्यों और वैश्विक स्थिरांक नाम बदलने के लिए आपका पैटर्न क्या है? –

+1

ग्लोबल्स के लिए, उसी फ़ाइल में जहां मैं जी को परिभाषित करता हूं, मैं 'G.glob = {};' को परिभाषित करता हूं। फिर क्लाइंट सशर्त में, उदाहरण के लिए: 'अगर (Meteor.isClient) {G.glob.MY_CLIENT_GLOBAL =' कुछ '; } '। इसलिए हमारे पास ग्लोबल्स हो सकते हैं जो क्लाइंट, सर्वर या साझा के लिए हैं। समान उपयोग वस्तुओं को घर उपयोगिता कार्यों के लिए बनाया जा सकता है। – pfkurtz

3

यदि आप सद्भाव (ईएस 6) का उपयोग कर रहे हैं और आप वैश्विक चर का उपयोग करना चाहते हैं, तो आप export का उपयोग कर सकते हैं।

"use strict" 
export var Book = new Mongo.Collection('book'); 
संबंधित मुद्दे