यह एक पुराना सवाल है और बेशर्म आत्म पदोन्नति के लिए माफी माँगता हूँ क्योंकि यह मेरा उद्देश्य नहीं है, बस उम्मीद है कि यह किसी की मदद करेगा।
Razorbeard क्या कहता है ( .clone()
आदि) के अलावा, मैंने NPM मॉड्यूल बनाया जो मोमेंट.जे को बॉक्स से बाहर आने के लिए अपरिवर्तनीय तरीकों को जोड़ता है। मौजूदा कोड को तोड़ने का इरादा नहीं है, इसलिए मॉड्यूल Immu
अपने नाम के साथ नए तरीकों को जोड़ता है ।
पल-पल कारखाने द्वारा लौटाए जाने वाले प्रत्येक उदाहरण को अपरिवर्तनीय तरीकों से सजाया moment().startOf()
जाएगा startOfImmu()
, उदाहरण के लिए , add()
उनके पास addImmu()
आदि होंगे , उनमें से प्रत्येक नए पल को लौटाता है, बल्कि फिर मौजूदा को संशोधित करता है। इसका उपयोग करने के लिए नए अपरिवर्तनीय तरीकों तक पहुंच प्राप्त moment
करने के momentImmutableMethods
लिए बस पास कारखाने का उपयोग करें। उदाहरण:
var moment = require('moment'); // or moment-timezone
import { momentImmutableMethods } from 'moment-immutable-methods';
// to decorate instances with immutable methods we need to extend moment factory as below:
momentImmutableMethods(moment);
// now every instance returned by moment will have Immu methods attached.
// IMMUTABLE EXAMPLE
// we using immutable methods that were attached to every instance, these have Immu appended to original name
const ddd = moment({
hour: 5,
minute: 10
});
// Moment {_isAMomentObject: true, _i: {…}, _isUTC: false, _pf: {…}, _locale: Locale, …}
const eee = ddd.startOfImmu('day');
// Moment {_isAMomentObject: true, _i: {…}, _isUTC: false, _pf: {…}, _locale: Locale, …}
console.log(ddd === eee);
// false
const fff = eee.startOfImmu('month');
// Moment {_isAMomentObject: true, _i: {…}, _isUTC: false, _pf: {…}, _locale: Locale, …}
console.log(ddd === fff);
// false
console.log(eee === fff);
// false
console.log(ddd.format('DD/MM/YY HH:mma'));
// "14/04/18 05:10am"
console.log(eee.format('DD/MM/YY HH:mma'));
// "14/04/18 00:00am"
console.log(fff.format('DD/MM/YY HH:mma'));
// "08/04/18 00:00am"
एनपीएम पर इसकी https://www.npmjs.com/package/moment-immutable-methods पर