मैं जावास्क्रिप्ट में कक्षाएं बनाने के लिए उपयोगिता पर काम कर रहा हूं। और यह काम करता है, समस्या यह है कि निजी विशेषताओं को कैसे परिभाषित किया जाए।निजी संपत्तियों के साथ क्लास बनाने
इस कोड
var OO = {
Class:function(){
var len = arguments.length;
var data = arguments[len-1];
var Klass;
if (data.constructor === Object){
Klass = function(){};
} else {
Klass = data.constructor;
delete data.constructor;
}
OO.extend(Klass.prototype,data); //Classic Extend Method
return Klass;
},
//Simple extend method, just what I need in this case
extend: function(target, source){
var prop;
for (prop in source)
target[prop] = source [prop];
}
}
है यह है कि यह कैसे
// first create a class
var person = OO.Class ({
constructor: function (name, age) {
this.name = name;
this.age = age;
},
name:'',
age:'',
getName: function() {
return this.name;
},
getAge: function() {
return this.age;
}
});
काम करता है और यहाँ उदाहरण
var one = new Person ('josh', 22);
और समस्या है:
one.age// returns 22
one.name// returns josh
क्या मैं जरूरत है कि इन गुणों केवल getName() और getAge()
EDIT1 तरह के तरीकों द्वारा पहुँचा जा सकता है: जोड़ा समारोह
आप मुश्किल से अपने वर्तमान समाधान का उपयोग कर ऐसा कर सकते हैं। – zerkms
कुछ लोग जावास्क्रिप्ट को क्रमशः कोडिंग करने पर जोर क्यों देते हैं? – AlienWebguy
आपको डगलस क्रॉकफोर्ड [जावास्क्रिप्ट में निजी सदस्य] (http://javascript.crockford.com/private.html) लेख में रुचि हो सकती है। – RobG