मैंने जॉन रेसिग की Best Practices in JavaScript Library Design प्रस्तुति देखी; एक स्लाइड ने ऑब्जेक्ट कन्स्ट्रक्टर को "ट्वीविंग" का सुझाव दिया ताकि यह स्वयं को तुरंत चालू कर सके।कन्स्ट्रक्टर के भीतर नया या खराब लपेट रहा है?
function jQuery(str, con) {
if (window === this) {
return new jQuery(str, con);
}
// ...
}
कि के साथ, new jQuery("#foo")
jQuery("#foo")
हो जाता है।
मैंने सोचा कि यह दिलचस्प था, लेकिन मैंने अपने कोड में ऐसे निर्माता को नहीं लिखा है।
थोड़ी देर बाद मैंने एसओ पर एक पोस्ट पढ़ी। (क्षमा करें, मुझे याद नहीं है कि मैं कौन सा लिंक दूंगा या मैं एक लिंक दूंगा। अगर मैं इसे फिर से पा सकता हूं तो मैं सवाल अपडेट कर दूंगा।) टिप्पणियों में से एक ने कहा कि प्रोग्रामर से new
को छिपाने का बुरा अभ्यास था, लेकिन नहीं विवरण में नहीं जाना है।
मेरा सवाल यह है कि उपरोक्त आम तौर पर अच्छा, बुरा, या उदासीन माना जाता है, और क्यों?