2011-11-08 14 views
6

मैं ट्विटर स्रोत कोड पढ़ाई कर रहा था, और मैं यह स्निपेट में आए:ट्विटर ने window.setTimeout और window.setInterval को फिर से परिभाषित क्यों किया?

window.setTimeout=window.setTimeout;window.setInterval=window.setInterval; 

क्यों ट्विटर इन कार्यों को फिर से परिभाषित करता है?

संपादित करें: कोड देखने के लिए, किसी भी ट्विटर उपयोगकर्ता पेज पर जाएं, पृष्ठ का स्रोत खोलें, और आप जावास्क्रिप्ट के दूसरे ब्लॉक में स्निपेट देखेंगे।

+0

संदर्भ क्या है? मुझे नहीं लगता कि यह प्रश्न पूर्ण कोड के लिंक के बिना उत्तरदायी है। – nrabinowitz

+0

@nrabinowitz संपादित देखें। – JCM

उत्तर

15

यह क्रॉस-ब्राउज़र फैशन में वैश्विक स्तर पर setTimeout और setInterval कार्यों को प्रतिस्थापित करने की तकनीक है।

window.setTimeout, कब, एक lvalue ( असाइनमेंट के बाईं ओर) के रूप में इस्तेमाल प्रोटोटाइप श्रृंखला चलना नहीं है, लेकिन सही पक्ष पर, यह करता है। तो यह हमेशा प्रोटोटाइप श्रृंखला से बाहर संपत्ति खींच लेगा और इसे ऑब्जेक्ट पर सही रखेगा।

http://www.adequatelygood.com/2011/4/Replacing-setTimeout-Globally देखें।

+1

मैं इस उत्तर का एक बड़ा प्रशंसक हूं। –

+0

बिल्कुल सही, धन्यवाद। – JCM

+2

यदि आप लेख को पढ़ना नहीं चाहते हैं: महत्वपूर्ण हिस्सा यह है कि इसका उपयोग आईई में एक बग के आसपास काम करने के लिए किया जाता है। विशेष रूप से, असाइनमेंट 'setTimeout = ...;' अपवाद फेंकता है जब तक आप ऊपर की चाल का उपयोग नहीं करते। 'SetInterval' और दूसरों के लिए वही। – user123444555621