2011-11-26 16 views
8

संभव डुप्लिकेट:
why do we need to pass in window and undefined into this jquery plugin?एक तुरंत लागू गुमनाम कार्य करने के लिए खिड़की और अपरिभाषित पासिंग। क्यूं कर?

मैं jQuery स्रोत कोड देखा है ऐसा करता है:


(function(window, undefined){ 

... 

}(window)) 

मैं, क्यों यह उपयोगी अपरिभाषित शामिल करना है किसी को जहां अगर पहले "अपरिभाषित" को बदलने के लिए। लेकिन खिड़की नहीं बदला जा सकता है। मुझे पता है कि इसे भी इस्तेमाल करने की ज़रूरत नहीं है, है ना? यह कैसे उपयोगी हो सकता है?

+0

संभावित डुप्लिकेट: [http://www.stackoverflow.com/questions/6400632/why-do-we-need-to-pass-in-window-and-undefined-into-this-jquery-plugin] (http://www.stackoverflow.com/questions/6400632/why-do-we-need-to-pass-in-window-and-undefined-into-this-jquery-plugin) –

उत्तर

16

माइक्रो अनुकूलन।

एक स्थानीय चर के रूप में window होने एक वैश्विक चर से मामूली रूप से तेजी से होता है।

यह भी बेहतर minifies। अब हम w को समारोह पैरामीटर कम करें और w.setTimeout आदि window.setTimeout के बजाय का उपयोग कर सकते हैं।

कम बाइट्स = बेहतर

+0

मैं minification बात मिलता है न। आपको "window.document" लिखने की भी आवश्यकता नहीं है। आप बस "दस्तावेज़" लिख सकते हैं, है ना? और खिड़की स्थानीय चर के रूप में तेजी से क्यों है? –

+5

वैश्विक चर से स्थानीय चर का उपयोग करना तेज़ है। 'दस्तावेज' अकेले वैश्विक दायरे में देखने के लिए घुसपैठियों को स्वीकार करता है। '(समारोह में 'विंडो' (खिड़की, अपरिभाषित) {' सिर्फ एक ** स्थानीय ** पैरामीटर नाम, डाल सकते थे '(समारोह (WND, अपरिभाषित) {'। यह ** संदर्भ ** वैश्विक वस्तु (है विंडो) केवल क्योंकि आप इसे पैरामीटर जब ऑटो को क्रियान्वित समारोह (अंत में के रूप में पास -।। कोष्ठक के बीच) एक ही नाम से धोखा न खाएं समारोह के पैरामीटर सूची में 'विंडो' के रूप में एक मनमाना स्ट्रिंग है, तो आप यह कम करने से इसकी लंबाई कम कर सकते हैं और यह उदाहरण 'डब्ल्यू' के लिए कहते हैं। –

+0

दिलचस्प। यह प्रदर्शन का एक मुद्दा है। तो क्या आप कह रहे हैं कि, anpnymous समारोह के अंदर, आप को "w.document" वास्तव में लिख "दस्तावेज़" की तुलना में तेजी है ? –

9

इतना ही नहीं क्या Raynos तैनात लेकिन यह भी लोग हैं, जो अन्य पुस्तकालयों कि अपने पृष्ठ पर है या किसी अन्य तरीके से पेज को एक्सेस कर सकते हैं में कुछ इस तरह करते हैं से अपने कोड की रक्षा करता है:

undefined = true; 

दूसरे शब्दों में, यह अन्य लोगों को आम वैश्विक चर या वस्तुओं को पुनर्परिभाषित करने की तरह बेवकूफ काम करने से बचाता है।

+0

हाँ, मैं पहले से ही मेरी पोस्ट क्यों अपरिभाषित शामिल किया जाना चाहिए कि मैं पाने में कहा। –

+3

एनपी, किसी और के लिए यहां छोड़ा गया जो शायद नहीं जानता। – Bert

+0

नोट के लिए धन्यवाद :) –

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