सी #/PHP से आ रहा है, मैं कक्षाओं (कार्यों) पर पूर्ण गेटर्स/सेटर्स रखना चाहता हूं जो मैं जावास्क्रिप्ट के साथ बनाता हूं।जावास्क्रिप्ट में क्लास गेटर/सेटर्स बनाने का सबसे अच्छा तरीका?
हालांकि, मेरे द्वारा किए गए अधिकांश जावास्क्रिप्ट कोड में, गेटर्स और सेटर्स का उपयोग नहीं किया जाता है, बल्कि साधारण सार्वजनिक चर।
मुझे गेटर्स और सेटर्स पर John Resig's article खोजने में प्रसन्नता हुई, लेकिन कुछ टिप्पणियां जो बताती हैं कि कुछ ब्राउज़र "गेटर्स और सेटर्स का समर्थन नहीं करते हैं" जो मुझे भ्रमित कर रहे हैं क्योंकि वे जावास्क्रिप्ट की "विशेषता" नहीं हैं लेकिन अधिक एक साधारण पैटर्न का जो मूल जावास्क्रिप्ट वाक्यविन्यास का उपयोग करता है। यह लेख 2007 में भी लिखा गया था, इसलिए अब तक इसे पुराना हो सकता है।
जावास्क्रिप्ट में गेटर्स और सेटर्स की वर्तमान स्थिति क्या है? क्या वे वास्तव में आज सभी ब्राउज़रों द्वारा "समर्थित" हैं (जो भी इसका मतलब है)? क्या वे जावास्क्रिप्ट के लिए एक उपयोगी प्रोग्रामिंग पैटर्न हैं या सार्वजनिक चर के साथ जावास्क्रिप्ट कक्षाएं (कार्य होने) बेहतर हैं? क्या निम्नलिखित से उन्हें लागू करने का कोई बेहतर तरीका है?
$(document).ready(function() {
var module = new Module('idcode');
module.set_id_code('new idcode');
module.set_title('new title');
$('body').html(module.get_id_code()+': '+module.get_title());
});
function Module(id_code, title) {
var id_code = id_code;
var title = title;
//id_code
this.get_id_code = function() {
return id_code;
}
this.set_id_code = function(value) {
id_code = value;
}
//title
this.get_title = function() {
return title;
}
this.set_title = function(value) {
title = value;
}
}
आप कोड ब्लोट क्यों चाहते हैं? – gdj
बिल्कुल, मुझे कोड ब्लोट नहीं चाहिए, लेकिन मैं अपनी कक्षाओं में सार्वजनिक और निजी पहुंच को अलग करना चाहता हूं क्योंकि मैं PHP और C# जैसी अन्य भाषाओं में करता हूं। PHP में __get और __set जादू विधियां हैं और सी # में ब्लूटेड वाक्यविन्यास के बिना अलगाव प्राप्त करने के लिए "संपत्ति सिंटैक्स" है। जावास्क्रिप्ट में इस तरह की कोई विशेषताएं? –
क्या आईई 7/8/9 में कोड का उपरोक्त टुकड़ा काम करता है ?? – Shaggy