javascript - JS class without constant reference to "this" for member access -


मेरी ठेठ JS वर्ग संरचना इस तरह दिखती है:

  MyClass = function (args) { This.myProp1 = अपरिभाषित; This.myProp2 = आर्ग्स [0]; //... अधिक सदस्य डेटा this.foo = function () {return.myProp1 + this.myProp2; // & lt; - समस्या } //... अधिक सदस्य फ़ंक्शन} // यदि मायक्लास एक सुपरक्लास विस्तार करते हैं, तो निम्नलिखित जोड़ें ... MyClass.prototype = Object.create (MySuperClass.prototype); MyClass.prototype.constructor = MyClass;  

... जेएस के साथ मेरे चलते झुंझलाहट यह है कि मुझे लगता है कि सदस्य कार्यों में लगातार यह का उपयोग करने के लिए लगता है ताकि बहुत ही वस्तु के गुणों का उपयोग किया जा सके जिसके लिए वे कार्य संबंधित हैं। कई अन्य भाषाओं में, उदा। शिविर; जावा, यह सुरक्षित रूप से छोड़ा जा सकता है जब सदस्य कार्य एक ही कक्षा / उदाहरण में सदस्य डेटा के साथ काम कर रहे हैं। (मुझे एहसास है कि जेएस को मौलिक रूप से अलग तरीके से संरचित किया जाता है क्योंकि इसे एक क्रमबद्ध विरासत भाषा के बजाय एक प्रोटोटाइप के रूप में डिजाइन किया जा रहा है।)

सवाल एक और तरीके से डालने के लिए: क्या अनिर्दिष्ट गुंजाइश नहीं है विंडो से, लेकिन वर्तमान, स्थानीय मान यह ?

पीएस मैं यह अनुमान लगा रहा हूं कि यह एक भाषा की सीमा है, लेकिन मुझे लगा कि मैं फिर से फिर से जाँच करूँगा।

कीवर्ड जो आंशिक रूप से करता है जो आप चाहते हैं: लेकिन इसका उपयोग करने के लिए अत्यधिक अनुशंसित नहीं है, क्योंकि कुछ मामलों में अस्पष्ट है।

यदि आप एक गैर मौजूदा सदस्य का उपयोग करते हैं तो यह विंडो ऑब्जेक्ट तो आप जो कर सकते हैं वह सभी गुणों को घोषित कर दें जो आप बाद में उपयोग करने जा रहे हैं और फिर के साथ कथन घोषित करें।

अगर मुझे आपकी पसंद थी, तो मैं शायद बदलूंगा इस लंघन के बारे में मेरा मन या यदि आप कर सकते हैं, तो दूसरी भाषा का उपयोग करें।


Comments

Popular posts from this blog

java - org.apache.http.ProtocolException: Target host is not specified -

java - Gradle dependencies: compile project by relative path -

ruby on rails - Object doesn't support #inspect when used with .include -