पायथन में आप किसी अज्ञात विशेषताओं को प्रोग्रामेटिक तरीके से हल करने के लिए __getattr__(self,key)
विधि वाले किसी ऑब्जेक्ट को परिभाषित कर सकते हैं, लेकिन जावास्क्रिप्ट में आप केवल पूर्व परिभाषित विशेषताओं के लिए गेटर्स और सेटर्स को परिभाषित कर सकते हैं। क्या जावास्क्रिप्ट में पूर्व चीज को पूरा करने का एक सामान्य तरीका है?क्या कोई जावास्क्रिप्ट पाइथन की __getattr__ विधि के बराबर है?
नमूना कोड ख़ाली जैसा होगा:
function X() {};
X.prototype={
__getattr__:function(attrname) {
return "Value for attribute '"+attrname+"'";
}
}
x=new X()
alert(x.lskdjoau); // produces message: "Value of attribute 'lskdjoau'"
कुंजी बिंदु विशेषता प्रोग्राम के रूप में विशेषता का नाम के आधार पर का मूल्य हो रही है। प्री-सेटिंग विशेषता मदद नहीं करती है क्योंकि init के दौरान कोई जानकारी नहीं है कि किस गुण का अनुरोध किया जा सकता है।
धन्यवाद। हाँ, यह बल्कि __getattr__ –
@Roatin क्यों होगा !!!! जेएस को किसी भी अन्य फीचर की तुलना में इसकी आवश्यकता है ('कम चूसने' सुविधा को छोड़कर जो लोग एक दशक के लिए अनुरोध कर रहे हैं)। – orokusaki