अच्छी तरह से मैंने यह पता लगाने की कोशिश की कि यह किसी भी तरह से संभव है। यहां कोड है:प्रोटोटाइप पर जावास्क्रिप्ट निजी सदस्य
a=function(text)
{
var b=text;
if (!arguments.callee.prototype.get)
arguments.callee.prototype.get=function()
{
return b;
}
else
alert('already created!');
}
var c=new a("test"); // creates prototype instance of getter
var d=new a("ojoj"); // alerts already created
alert(c.get()) // alerts test
alert(d.get()) // alerts test from context of creating prototype function :(
जैसा कि आप देखते हैं कि मैंने प्रोटोटाइप गेटटर बनाने की कोशिश की है। किस लिए? खैर, अगर आप कुछ इस तरह लिखना:
a=function(text)
{
var b=text;
this.getText=function(){ return b}
}
... सब कुछ ठीक हो जाना चाहिए .. लेकिन वास्तव में हर बार जब मैं वस्तु बना सकते हैं - मैं gettext समारोह स्मृति का उपयोग करता है बनाएँ। मैं एक प्रोटोटाइपिकल फ़ंक्शन मेमोरी में लेटना चाहता हूं जो वही करेगा ... कोई विचार?
संपादित करें:
मैं क्रिस्टोफ द्वारा दिए गए समाधान की कोशिश की, और ऐसा लगता है अब के लिए अपने एकमात्र ज्ञात समाधान। संदर्भ से मूल्य पुनर्प्राप्त करने के लिए इसे आईडी जानकारी याद रखने की आवश्यकता है, लेकिन पूरा विचार मेरे लिए अच्छा है :) आईडी याद रखने के लिए केवल एक चीज है, बाकी सब कुछ स्मृति में एक बार संग्रहीत किया जा सकता है। वास्तव में आप इस तरह के कई निजी सदस्यों को स्टोर कर सकते हैं, और किसी भी समय केवल एक आईडी का उपयोग कर सकते हैं। वास्तव में यह मुझे संतुष्ट कर रहा है :) (जब तक किसी को बेहतर विचार नहीं मिला)। प्रोटोटाइप पर
someFunc = function()
{
var store = new Array();
var guid=0;
var someFunc = function(text)
{
this.__guid=guid;
store[guid++]=text;
}
someFunc.prototype.getValue=function()
{
return store[this.__guid];
}
return someFunc;
}()
a=new someFunc("test");
b=new someFunc("test2");
alert(a.getValue());
alert(b.getValue());
यह [अन्य प्रश्न] (http://stackoverflow.com/questions/436120) –