Assolomu aleykum OMUC!!!

Kirish:

BUgun siz bilan JavaScript'da kutubxona yatamiz. TO'g'ri bu kutubxona JQuery , NodeJS yoki ReactJS'day bo'lmaydi. Undan avval keling siz bilan kutubxona o'zi nima ekanligini bilib olamiz.

JavaScript kutubxona bu...

JavaScript kutubxonasi - bu oldindan yozilgan JavaScript-ni kutubxonasi, bu JavaScript-ga asoslangan dasturlarni, ayniqsa AJAX va boshqa veb-markazlashtirilgan texnologiyalar uchun osonroq ishlab chiqishga imkon beradi.

Endi asosiy ishga o'tamiz:

Javascriptda nima uchun o'z kutubxonangizni yaratishingizga oid ko'plab faktlar va muhim fikrlar mavjud:

  • O'zini juda yaxshi his qilmoqda
  • Kodingizni tartibga solishning yaxshi usuli
  • Sizning kodingiz ko'proq saqlanib qoladi
  • Istaganingiz bilan osongina baham ko'ring
  • Har doim kerakli bo'lgan narsani bir marta yozing

Ammo har doim o'zingizning plaginingizni yozishdan oldin aniq tasavvurga ega bo'lishingiz kerak, nima uchun men ushbu plaginni yozmoqchiman, agar siz allaqachon erishmoqchi bo'lgan narsani amalga oshiradigan plagin bo'lsa, Google-da yaxshi qidirishingiz tavsiya etiladi, bu tezroq va oson bo'ladi birlashtirish uchun va siz qilmoqchi bo'lganingizdan ham yaxshiroq bo'lishi mumkin, esda tuting: biz g'ildirakni qayta yaratishni xohlamaymiz, bu juda samarasiz va agar biz ruxsat bersak, undan qochishimiz kerak. Ushbu maqolada men prototip yaratmasdan sof javascript bilan oddiy kutubxona yaratmoqchiman, buning o'rniga tabiiy moslamalardan foydalanamiz. Agar siz prototipdan foydalanish va qo'lda moslamalarni boshqarish o'rtasida qanday farq borligini bilmoqchi bo'lsangiz, ushbu kod shubhalaringizni bartaraf etishga yordam beradi.

1) asosiy tuzilmani yaratish:

Quyidagi kod myWindowGlobalLibraryName deb nomlangan kod bajarilgandan so'ng global o'zgaruvchini yaratadi.

(function(window){

 function myLibrary(){
   var _myLibraryObject = {};


   return _myLibraryObject;
 }

 if(typeof(window.myWindowGlobalLibraryName) === 'undefined'){
   window.myWindowGlobalLibraryName = myLibrary();
 }
})(window);


console.log(myWindowGlobalLibraryName);

Biz deyarli hamma narsani noma'lum funktsiyalarga o'ralganimiz sababli, agar kodimiz ishlamay qolsa, u barcha tashqi javascriptlarga zarar etkazmasligi kerak.

2) kutubxona uchun maxsus funksiyalar yaratish

Ushbu misolda biz myCustomLog deb nomlanadigan maxsus jurnal funktsiyasini yaratamiz.

(function(window){

 function myLibrary(){
   var _myLibraryObject = {};

   _myLibraryObject.myCustomLog = function(thingToLog){
       console.log("My-Custom-Log > Type of variable : " + typeof(thingToLog));
       console.log("My-Custom-Log > Is number : " + !isNaN(thingToLog));
       console.log("My-Custom-Log > Length : " + (thingToLog).length);

       return console.log(thingToLog);
   };

   return _myLibraryObject;
 }

 if(typeof(window.myWindowGlobalLibraryName) === 'undefined'){
   window.myWindowGlobalLibraryName = myLibrary();
 }
})(window); // We send the window variable withing our function

myWindowGlobalLibraryName.myCustomLog(["My library","Rules"]);

3) Agar kerak bo'lsa, kutubxonangizda ochiq bo'lgan xususiyatlarni yarating (doirada)

Sozlamalarni yoki foydalanuvchini qiziqtirmaydigan boshqa xususiyatlarni saqlash uchun (yoki shunchaki biz ularni hech kim ko'rmasligini xohlaymiz), biz o'z funktsiyamiz doirasida oddiy o'zgaruvchini e'lon qilishimiz mumkin va bu bizning paketimizdan tashqarida olinmaydi. .

(function(window){

 function myLibrary(){
   var _myLibraryObject = {};

   var settings = {
     volume:100,
     mute:false
   };
   

   _myLibraryObject.setVolume = function(volume){
        settings.volume = volume;
        return volume;
   };
   
   _myLibraryObject.setMute = function(muteStatus){
        if(typeof(muteStatus) === 'boolean'){
          settings.mute = muteStatus;
        }else{
          console.error("You need to disable or enable the sound !");
        }

        return settings.mute;
   };
   
   _myLibraryObject.haveSound = function(){
        return settings.mute;
   };

   return _myLibraryObject;
 }

 if(typeof(window.myWindowGlobalLibraryName) === 'undefined'){
   window.myWindowGlobalLibraryName = myLibrary();
 }
})(window);


console.log(myWindowGlobalLibraryName);

Xulosa:

Mana sizga tayyor kutubxona balki o'zingiz ham shunday kutubxona yaratmoqchidirsiz??? Siz bilan Jahongir Sobirov bo'ldi. Hammaga omad!