मुझे एक गुंजाइश समस्या है, इस कोड में जब मैं mp3.playlistInfo() ${titlePlayList} को कॉल करता हूं तो undefined होता है।

मैं ${titlePlaylist} को playlistInfo: function() के अंदर कैसे उपयोग कर सकता हूं

const mp3 = {
    createPlaylist: function() {
        let titlePlaylist = prompt("Choose a name: ")
        console.log(`Your playlist name is: ${titlePlaylist}`)
    },
    playlistInfo: function() {
        console.log(`Already listening ${titlePlaylist}`)
    }
}


mp3.createPlaylist();
mp3.playlistInfo();
-1
SEVENELEVEN 1 अप्रैल 2021, 13:40

2 जवाब

चूंकि mp3 एक वस्तु है, इसलिए आपको titlePlaylist को mp3 के गुण के रूप में सेट करना होगा। फिर createPlaylist में आपको उपयोगकर्ता से लौटाए गए मान को titlePlaylist के मान पर सेट करना होगा। फिर आप titlePlaylist को playlistInfo में एक्सेस कर सकते हैं, और यदि आप एरो फ़ंक्शंस का उपयोग करते हैं तो आप this.titlePlaylist का उपयोग करके छोड़ सकते हैं:

const mp3 = {
  titlePlaylist: "",
  createPlaylist: () => {
    titlePlaylist = prompt("Choose a name: ");
    console.log(`Your playlist name is: ${titlePlaylist}`);
  },
  playlistInfo: () => {
    console.log(`Already listening ${titlePlaylist}`);
  },
};

mp3.createPlaylist();
mp3.playlistInfo();

आप क्लोजर का लाभ उठाकर भी इस कार्यक्षमता को प्राप्त कर सकते हैं जो आपको मूल फ़ंक्शन बॉडी के भीतर चर प्राप्त करने और सेट करने की अनुमति देता है:

const mp3Closure = () => {
  let titlePlaylist = "";
  return {
    createPlaylist: () => {
      titlePlaylist = prompt("Choose a name: ");
      console.log(`Your playlist name is: ${titlePlaylist}`);
    },
    playlistInfo: () => {
      console.log(`Already listening ${titlePlaylist}`);
    },
  };
};

const mp3WithClosure = mp3Closure();
mp3WithClosure.createPlaylist();
mp3WithClosure.playlistInfo();
1
John Marsden 1 अप्रैल 2021, 10:56

यदि आवश्यक हो तो OOP संस्करण:

class MP3 {
  constructor(titlePlaylist) {
    this.titlePlaylist = titlePlaylist;
  }
  titlePlaylist = null;
  get titlePlaylist() {
    return this.titlePlaylist;
  }
  set titlePlaylist(value) {
    this.titlePlaylist = value;
  }
  createPlaylist = () => {
    this.titlePlaylist = prompt("Choose a name: ");
    console.log(`Your playlist name is: ${this.titlePlaylist}`);
  };
  playlistInfo = () => {
    console.log(`Already listening ${this.titlePlaylist}`);
  };
}
const mp3 = new MP3("");

mp3.createPlaylist();
mp3.playlistInfo();
0
Yevhenii Shlapak 1 अप्रैल 2021, 11:03