में निजी गुण और विधियां हैं IIS सिर्फ ईएस 6 की कोशिश कर रहा हूं और नियमित जावास्क्रिप्ट में ईएस 6 में लिखे गए कोड के एक हिस्से को फिर से लिखना चाहता हूं। और अब, मैं ES6 कक्षाओं में निजी गुणों और विधियों को फिर से लिखने की कोशिश करते समय अटक गया हूं। ऐसा लगता है कि ईएस 6 में कक्षाएं निजी डेटा या विधियों के लिए स्पष्ट रूप से कुछ भी प्रदान नहीं करती हैं।ईएस 6 कक्षाओं
इसके अलावा, मैंने इस धागे की जांच की: Private properties in JavaScript ES6 classes और पता चला कि हम निजी डेटा स्टोर करने के लिए WeakMap का उपयोग कर सकते हैं। जो अजीब तरह का है लेकिन फिर भी यह एक काम हो सकता है। और मैंने इसे निजी डेटा के लिए उपयोग करने का प्रबंधन किया।
लेकिन निजी तरीकों के बारे में क्या? ES6 कक्षाओं में निजी विधियों (या यहां तक कि संरक्षित विधियां) रखने का अनुशंसित तरीका क्या है?
यदि कोई मुझे निजी तरीकों के साथ ईएस 6 कक्षा का उपयोग कर कोड के इस भाग को फिर से लिखने के लिए स्वच्छ साफ़ कर सकता है तो मैं सराहना करता हूं।
धन्यवाद।
function Deferred() {
// Private data
var isPending;
var handlers = {
resolve: [],
reject: [],
notify: []
};
// Initialize the instance
init();
function init() {
isPending = true;
this.promise = new Promise(this);
}
// Public methods
this.resolve = function(value) {
trigger('resolve', value);
};
this.reject = function(reason) {
trigger('reject', reason);
};
this.notify = function(value) {
trigger('notify', value);
};
this.on = function(event, handler) {
...
};
// Private method
function trigger (event, params) {
...
}
}
[* एमडीएन: कक्षाएं *] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Classes) आलेख में पर्याप्त जानकारी होनी चाहिए। – RobG