Allgemeine Front-End-JavaScript-Methodenkapselung

Allgemeine Front-End-JavaScript-Methodenkapselung

1. Geben Sie einen Wert ein und geben Sie seinen Datentyp zurück**

Funktionstyp(Absatz) {
    gibt Object.prototype.toString.call(para) zurück
}

2. Array-Deduplizierung

Funktion unique1(arr) {
    zurückgeben [...neues Set(arr)]
}

Funktion unique2(arr) {
    var obj = {};
    return arr.filter(ele => {
        wenn (!obj[ele]) {
            obj[ele] = true;
            gibt true zurück;
        }
    })
}

Funktion unique3(arr) {
    var Ergebnis = [];
    arr.fürEach(ele => {
        wenn (Ergebnis.indexOf(ele) == -1) {
            Ergebnis.push(Element)
        }
    })
    Ergebnis zurückgeben;
}

3. String-Deduplizierung

String.prototype.unique = Funktion () {
    var obj = {},
        str = '',
        len = diese.Länge;
    für (var i = 0; i < len; i++) {
        wenn (!obj[dies[i]]) {
            str += dies[i];
            obj[dies[i]] = wahr;
        }
    }
    gibt str zurück;
}

###### //Aufeinanderfolgende Zeichenfolgen entfernen function uniq(str) {
    return str.replace(/(\w)\1+/g, '$1')
}

4. Tiefe Kopie und flache Kopie

//Deep Clone (Deep Clone berücksichtigt keine Funktion)
Funktion deepClone(Objekt, Ergebnis) {
    var Ergebnis = Ergebnis || {};
    für (var prop in obj) {
        wenn (obj.hasOwnProperty(prop)) {
            wenn (Typ von Objekt[Eigenschaft] == ​​'Objekt' und Objekt[Eigenschaft] !== null) {
                // Referenzwert (Objekt/Array) und nicht null
                wenn (Object.prototype.toString.call(obj[prop]) == '[Objekt Objekt]') {
                    // Objektergebnis[Eigenschaft] = {};
                } anders {
                    // Array-Ergebnis[Eigenschaft] = [];
                }
                deepClone(Objekt[Eigenschaft], Ergebnis[Eigenschaft])
    } anders {
        // Ursprünglicher Wert oder Funktion
        Ergebnis[Eigenschaft] = Objekt[Eigenschaft]
    }
  }
}
Ergebnis zurückgeben;
}

// Tiefes und flaches Klonen dient der Referenzwertfunktion deepClone(target) {
    wenn (Typ von (Ziel) !== 'Objekt') {
        Rücklaufziel;
    }
    var Ergebnis;
    wenn (Object.prototype.toString.call(target) == '[Objekt-Array]') {
        // Array-Ergebnis = []
    } anders {
        // Objektergebnis = {};
    }
    für (var prop in Ziel) {
        wenn (Ziel.hasOwnProperty(Eigenschaft)) {
            Ergebnis[Eigenschaft] = deepClone(Ziel[Eigenschaft])
        }
    }
    Ergebnis zurückgeben;
}
// Funktion kann nicht kopiert werden var o1 = jsON.parse(jsON.stringify(obj1));

5. Umgekehrtes Grundprinzip und Erweiterung

// Ändere das ursprüngliche Array Array.prototype.myReverse = function () {
    var len = diese.Länge;
    für (var i = 0; i < len; i++) {
        var temp = dies[i];
        dies[i] = dies[Länge - 1 - i];
        dies[Länge - 1 - i] = temp;
    }
    gib dies zurück;
}

6. Vererbung des Heiligen Gral-Musters

Funktion erben(Ziel, Ursprung) {
    Funktion F() {};
    F.Prototyp = Herkunft.Prototyp;
    Ziel.Prototyp = neues F();
    Ziel.prototype.constructor = Ziel;
    // Der endgültige Prototyp verweist auf Target.prop.uber = Origin.prototype;
}

7. Suchen Sie den ersten Buchstaben, der nur einmal in einer Zeichenfolge vorkommt

String.prototype.firstAppear = Funktion () {
    var obj = {},
        len = diese.Länge;
    für (var i = 0; i < len; i++) {
        wenn (Objekt[dieses[i]]) {
            obj[dieses[i]]++;
        } anders {
            obj[dieses[i]] = 1;
        }
    }
    für (var prop in obj) {
       wenn (Objekt[Eigenschaft] == ​​1) {
         Rücklaufstütze;
       }
    }
}

8. Suchen Sie das übergeordnete Element der n-ten Ebene eines Elements

Funktion Eltern(ele, n) {
    während (Element && n) {
        ele = ele.übergeordnetesElement ? ele.übergeordnetesElement : ele.übergeordneterKnoten;
        N--;
    }
    Rückgabeelement;
}

9. Gibt den n-ten Geschwisterknoten eines Elements zurück

Funktion retSibling(e, n) {
    während (e && n) {
        wenn (n > 0) {
            wenn (e.nächstesElementGeschwister) {
                e = e.nächstesElementGeschwister;
            } anders {
                für (e = e.nextSibling; e und e.nodeType !== 1; e = e.nextSibling);
            }
            N--;
        } anders {
            if (e.vorherigesElementGeschwister) {
                e = e.vorherigesElementGeschwister;
            } anders {
                für (e = e.vorherigesElementGeschwister; e und e.Knotentyp !== 1; e = e.vorherigesElementGeschwister);
            }
            n++;
        }
    }
    Rückkehr e;
}

10. Kapseln Sie mychildren, um Browserkompatibilitätsprobleme zu lösen

Funktion meineKinder(e) {
    var Kinder = e.childNodes,
        arr = [],
        len = Kinder.Länge;
    für (var i = 0; i < len; i++) {
        wenn (Kinder[i].nodeType === 1) {
            arr.push(Kinder[i])
        }
    }
    Rückflug an;
}

11. Bestimmen Sie, ob ein Element untergeordnete Elemente hat

Funktion hatKinder(e) {
    var Kinder = e.childNodes,
        len = Kinder.Länge;
    für (var i = 0; i < len; i++) {
        wenn (Kinder[i].nodeType === 1) {
            gibt true zurück;
        }
    }
    gibt false zurück;
}

12. Ich füge ein Element nach einem anderen Element ein

Element.prototype.insertAfter = Funktion (Ziel, Elen) {
    var nextElen = elen.nextElenmentSibling;
    if (nextElen == null) {
        dies.appendChild(Ziel);
    } anders {
        dies.insertBefore(Ziel, nächstesElen);
    }
}

13. Gibt die aktuelle Uhrzeit zurück (Jahr, Monat, Tag, Stunde, Minute, Sekunde)

Funktion getDateTime() {
    var Datum = neues Datum(),
        Jahr = Datum.getFullYear(),
        Monat = Datum.getMonth() + 1,
        Tag = Datum.getDate(),
        Stunde = Datum.getHours() + 1,
        Minute = Datum.getMinutes(),
        Sekunde = Datum.getSeconds();
        Monat = Prüfzeit(Monat);
        Tag = Prüfzeit(Tag);
        Stunde = Prüfzeit(Stunde);
        Minute = Prüfzeit(Minute);
        Sekunde = Prüfzeit(Sekunde);
     Funktion checkTime(i) {
        wenn (i < 10) {
                i = "0" + i;
       }
      gebe ich zurück;
    }
    return "" + Jahr + "Jahr" + Monat + "Monat" + Tag + "Tag" + Stunde + "Stunde" + Minute + "Minute" + Sekunde + "Sekunde"
}

14. Ermitteln Sie die Bildlaufdistanz der Bildlaufleiste

Funktion getScrollOffset() {
wenn (Fenster.SeiteXOffset) {
zurückkehren {
x: Fenster.SeitenXOffset,
y: Fenster.SeitenYOffset
}
} anders {
zurückkehren {
x: Dokument.Body.ScrollLeft + Dokument.DocumentElement.ScrollLeft,
y: Dokument.Body.ScrollTop + Dokument.DocumentElement.ScrollTop
}
}
}

15. Ermitteln Sie die Größe des Ansichtsfensters

Funktion getViewportOffset() {
    if (Fenster.innereBreite) {
        zurückkehren {
            w: Fenster.Innenbreite,
            h: Fenster.Innenhöhe
        }
    } anders {
        // IE8 und darunter if (document.compatMode === "BackCompat") {
            // Quirks-Modus return {
                w: Dokument.Body.Clientbreite,
                h: Dokument.Body.ClientHöhe
            }
        } anders {
            // Standardmodus return {
                w: Dokument.Dokumentelement.Clientbreite,
                h: Dokument.Dokumentelement.Clienthöhe
            }
        }
    }
}

16. Holen Sie sich jedes Attribut eines beliebigen Elements

Funktion getStyle(elem, prop) {
    window.getComputedStyle zurückgeben ? window.getComputedStyle(elem, null)[prop] : elem.currentStyle[prop]
}

17. Kompatibler Code für Bindungsereignisse

Funktion addEvent(Element, Typ, Handle) {
    if (elem.addEventListener) { //nicht-IE und nicht-IE9
        elem.addEventListener(Typ, Handle, falsch);
    } sonst wenn (elem.attachEvent) { //ie6 nach ie8
        elem.attachEvent('on' + Typ, Funktion () {
            handle.call(Element);
        })
    } anders {
        Element['ein' + Typ] = Griff;
    }
}

18. Unverbindliche Veranstaltung

Funktion removeEvent(Element, Typ, Handle) {
    if (elem.removeEventListener) { //nicht-IE und nicht-IE9
        elem.removeEventListener(Typ, Handle, falsch);
    } sonst wenn (elem.detachEvent) { //ie6 nach ie8
        elem.detachEvent('on' + Typ, Handle);
    } anders {
        elem['on' + Typ] = null;
    }
}

19. Den kompatiblen Code des Sprudelns abbrechen

Funktion stopBubble(e) {
    wenn (e && e.stopPropagation) {
        e.stopPropagation();
    } anders {
        Fenster.Ereignis.AbbrechenBubble = wahr;
    }
}

20. Überprüfen Sie, ob eine Zeichenfolge ein Palindrom ist

Funktion istPalina(str) {
    wenn (Object.prototype.toString.call(str) !== '[Objekt String]') {
        gibt false zurück;
    }
    var len = str.länge;
    für (var i = 0; i < len / 2; i++) {
        wenn (str[i] != str[len - 1 - i]) {
            gibt false zurück;
        }
    }
    gibt true zurück;
}

21. Überprüfen Sie, ob eine Zeichenfolge ein Palindrom ist

Funktion istPalindrom(str) {
    str = str.replace(/\W/g, '').toLowerCase();
    console.log(str)
    Rückgabewert (str == str.split('').reverse().join(''))
}

22. Kompatibel mit der Methode getElementsByClassName

Element.prototype.getElementsByClassName = Document.prototype.getElementsByClassName = Funktion (_className) {
    var allDomArray = document.getElementsByTagName('*');
    var lastDomArray = [];
    Funktion trimSpace(strClass) {
        var reg = /\s+/g;
        returniere strClass.replace(reg, ' ').trim()
    }
    für (var i = 0; i < allDomArray.length; i++) {
        var classArray = trimSpace(allDomArray[i].className).split(' ');
        für (var j = 0; j < classArray.length; j++) {
            wenn (KlassenArray[j] == _KlassenName) {
                letztesDomArray.push(allesDomArray[i]);
                brechen;
            }
        }
    }
    gibt letztesDomArray zurück;
}

23. Bewegungsfunktion

Funktion animieren(obj, json, Rückruf) {
    Intervall löschen(Objekt.Timer);
    var Geschwindigkeit,
        aktuell;
    obj.timer = setzeIntervall(Funktion () {
        var lock = true;
        für (var prop in json) {
            wenn (Eigenschaft == 'Deckkraft') {
                aktuell = parseFloat(window.getComputedStyle(obj, null)[prop]) * 100;
            } anders {
                aktuell = parseInt(window.getComputedStyle(obj, null)[prop]);
            }
            Geschwindigkeit = (json[prop] – aktuell) / 7;
            Geschwindigkeit = Geschwindigkeit > 0? Math.ceil(Geschwindigkeit) : Math.floor(Geschwindigkeit);

            wenn (Eigenschaft == 'Deckkraft') {
                obj.style[prop] = (aktuell + Geschwindigkeit) / 100;
            } anders {
                obj.style[prop] = aktuell + Geschwindigkeit + 'px';
            }
            wenn (aktuell != json[Eigenschaft]) {
                Sperre = falsch;
            }
        }
        if (sperren) {
            Intervall löschen(Objekt.Timer);
            Typ des Rückrufs == 'Funktion'? Rückruf(): '';
        }
    }, 30)
}

24. Elastische Übung

Funktion ElasticMovement(Objekt, Ziel) {
    Intervall löschen(Objekt.Timer);
    var iSpeed ​​= 40,
        a, u = 0,8;
    obj.timer = setzeIntervall(Funktion () {
        a = (Ziel – Objekt.OffsetLinks) / 8;
        iGeschwindigkeit = iGeschwindigkeit + a;
        iGeschwindigkeit = iGeschwindigkeit * u;
        wenn (Math.abs(iSpeed) <= 1 und Math.abs(a) <= 1) {
            console.log('über')
            Intervall löschen(Objekt.Timer);
            obj.style.left = Ziel + "px";
        } anders {
            obj.style.left = obj.offsetLeft + iSpeed ​​​​+ 'px';
        }
    }, 30);
}

25. Kapseln Sie Ihre eigene forEach-Methode

Array.prototype.myForEach = Funktion (Funktion, Objekt) {
    var len = diese.Länge;
    var _this = Argumente[1]? Argumente[1] : Fenster;
    // var _this=Argumente[1]||Fenster;
    für (var i = 0; i < len; i++) {
        func.call(_dies, dies[i], ich, dies)
    }
}

26. Kapseln Sie Ihre eigene Filtermethode

Array.prototype.myFilter = Funktion (Funktion, Objekt) {
    var len = diese.Länge;
    var arr = [];
    var _this = Argumente[1] || Fenster;
    für (var i = 0; i < len; i++) {
        func.call(_dies, dies[i], i, dies) und arr.push(dies[i]);
    }
    Rückflug an;
}

27. Array-Map-Methode

Array.prototype.myMap = Funktion (func) {
    var arr = [];
    var len = diese.Länge;
    var _this = Argumente[1] || Fenster;
    für (var i = 0; i < len; i++) {
        arr.push(func.call(_dies, dies[i], i, dies));
    }
    Rückflug an;
}

28. Array jede Methode

Array.prototype.myEvery = Funktion (func) {
    varflag = wahr;
    var len = diese.Länge;
    var _this = Argumente[1] || Fenster;
    für (var i = 0; i < len; i++) {
        wenn (func.apply(_this, [this[i], i, this]) == false) {
            Flagge = falsch;
            brechen;
        }
    }
    Flagge zurückgeben;
}

29. Array-Reduzierungsmethode

Array.prototype.myReduce = Funktion (Funktion, Anfangswert) {
    var len = diese.Länge,
        nächsterWert,
        ich;
    wenn (!initialValue) {
        // Kein zweiter Parameter übergeben nextValue = this[0];
        ich = 1;
    } anders {
        // Übergeben Sie den zweiten Parameter nextValue = initialValue;
        ich = 0;
    }
    für (; i < len; i++) {
        nächsterWert = func(nächsterWert, dieser[i], i, dieser);
    }
    gib den nächsten Wert zurück;
}

30. Holen Sie sich die Parameter in der URL

Funktion getWindonHref() {
    var sHref = Fenster.Standort.href;
    var args = sHref.split('?');
    wenn (args[0] === sHref) {
        zurückkehren '';
    }
    var hrefarr = args[1].split('#')[0].split('&');
    var obj = {};
    für (var i = 0; i < hrefarr.length; i++) {
        hrefarr[i] = hrefarr[i].split('=');
        obj[hrefarr[i][0]] = hrefarr[i][1];
    }
    gibt Objekt zurück;
}

31. Array-Sortierung

// Schnelle Sortierung [links] + min + [rechts]
Funktion quickArr(arr) {
    wenn (arr.Länge <= 1) {
        Rückflug an;
    }
    var links = [],
        rechts = [];
    var pIndex = Math.floor(arr.length / 2);
    var p = arr.splice(pIndex, 1)[0];
    für (var i = 0; i < arr.length; i++) {
        wenn (arr[i] <= p) {
            links.drücken(arr[i]);
        } anders {
            rechts.drücken(arr[i]);
        }
    }
    // Rekursion return quickArr(links).concat([p], quickArr(rechts));
}

// Blasenfunktion bubbleSort(arr) {
    für (var i = 0; i < arr.length - 1; i++) {
        für (var j = i + 1; j < arr.length; j++) {
            wenn (arr[i] > arr[j]) {
                var temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }
    }
    Rückflug an;
}

Funktion bubbleSort(arr) {
    var len = arr.Länge;
    für (var i = 0; i < len - 1; i++) {
        für (var j = 0; j < len - 1 - i; j++) {
            wenn (arr[j] > arr[j + 1]) {
                var temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
    Rückflug an;
}

32. Durchqueren des Dom-Baums

Bei einem DOM -Element auf der Seite werden das Element selbst und alle seine Nachkommen (nicht nur seine direkten Kinder) besucht.
Für jedes besuchte Element übergibt die Funktion das Element an die bereitgestellte Rückruffunktion.

Funktion traverse(Element, Rückruf) {
    Rückruf(Element);
    var Liste = Element.Kinder;
    für (var i = 0; i < Liste.Länge; i++) {
        durchqueren(Liste[i], Rückruf);
    }
}

33. Native JS-Kapselung Ajax

Funktion Ajax (Methode, URL, Rückruf, Daten, Flag) {
    var xhr;
    flag = Flagge || wahr;
    Methode = Methode.toUpperCase();
    wenn (Fenster.XMLHttpRequest) {
        xhr = neue XMLHttpRequest();
    } anders {
        xhr = neues ActiveXObject('Microsoft.XMLHttp');
    }
    xhr.onreadystatechange = Funktion () {
        wenn (xhr.readyState == 4 und xhr.status == 200) {
            console.log(2)
            Rückruf(xhr.responseText);
        }
    }

    wenn (Methode == 'GET') {
        var Datum = neues Datum(),
        Timer = Datum.getTime();
        xhr.open('GET', URL + '?' + Daten + '&Timer' + Timer, Flagge);
        xhr.senden()
        } sonst wenn (Methode == 'POST') {
        xhr.open('POST', URL, Flagge);
        xhr.setRequestHeader('Inhaltstyp', 'Anwendung/x-www-form-urlencoded');
        xhr.senden(Daten);
    }
}

34. Skript asynchron laden

Funktion loadScript(URL, Rückruf) {
    var oscript = document.createElement('Skript');
    if (oscript.readyState) { // IE8 und darunter oscript.onreadystatechange = function () {
            if (oscript.readyState === 'abgeschlossen' || oscript.readyState === 'geladen') {
                Rückruf();
            }
        }
    } anders {
        oscript.onload = Funktion () {
            Rückruf()
        };
    }
    oscript.src = URL;
    Dokument.body.appendChild(oscript);
}

35. Cookie-Verwaltung

var cookie = {
    set: Funktion (Name, Wert, Zeit) {
        document.cookie = Name + '=' + Wert + '; max-age=' + Zeit;
        gib dies zurück;
    },
    entfernen: Funktion (Name) {
        gib dies zurück.setCookie(name, '', -1);
    },
    get: Funktion (Name, Rückruf) {
        var allCookieArr = document.cookie.split('; ');
        für (var i = 0; i < allCookieArr.length; i++) {
            var itemCookieArr = allCookieArr[i].split('=');
            wenn (itemCookieArr[0] === Name) {
                Rückgabewert itemCookieArr[1]
            }
        }
        Rückgabe undefiniert;
    }
}

36. Implementieren Sie die Methode bind()

Function.prototype.myBind = Funktion (Ziel) {
    var Ziel = Ziel || Fenster;
    var _args1 = [].slice.call(arguments, 1);
    var selbst = dies;
    var temp = Funktion () {};
    var F = Funktion () {
        var _args2 = [].slice.call(arguments, 0);
        var parasArr = _args1.concat(_args2);
        returniere self.apply(diese Instanz von temp? dies: Ziel, parasArr)
    }
    temp.prototyp = selbst.prototyp;
    F.prototype = neues Temp();
    Rückgabe F;
}

37. Implementieren Sie die call()-Methode

Funktion.prototype.myCall = Funktion () {
    var ctx = Argumente[0] || Fenster;
    ctx.fn = dies;
    var args = [];
    für (var i = 1; i < Argumente.Länge; i++) {
        args.push(Argumente[i])
    }
    var Ergebnis = ctx.fn(...args);
    ctx.fn löschen;
    Ergebnis zurückgeben;
}

38. Implementieren Sie die Methode apply()

Funktion.prototype.myApply = Funktion () {
    var ctx = Argumente[0] || Fenster;
    ctx.fn = dies;
    wenn (!Argumente[1]) {
        var Ergebnis = ctx.fn();
        ctx.fn löschen;
        Ergebnis zurückgeben;
    }
    var Ergebnis = ctx.fn(...Argumente[1]);
    ctx.fn löschen;
    Ergebnis zurückgeben;
}

39. Anti-Shake

Funktion Entprellung(Handle, Verzögerung) {
    var Timer = null;
    Rückgabefunktion () {
        var _self = dies,
            _args = Argumente;
        Zeitüberschreitung löschen(Timer);
        Timer = setzeTimeout(Funktion () {
            handle.anwenden(_self, _args)
        }, Verzögerung)
    }
}

40. Drosselung

Funktion Drosselklappe(Handler, warten) {
    var letzteZeit = 0;
    Rückgabefunktion (e) {
        var jetztTime = neues Date().getTime();
        if (jetztZeit - letzteZeit > warte) {
            handler.apply(diese, Argumente);
            letzteZeit = aktuelleZeit;
        }
    }
}

41. requestAnimFrame-Kompatibilitätsmethode

fenster.requestAnimFrame = (funktion () {
    gibt window.requestAnimationFrame zurück ||
        Fenster.webkitRequestAnimationFrame ||
        window.mozRequestAnimationFrame ||
        Funktion (Rückruf) {
            window.setTimeout(Rückruf, 1000 / 60);
        };
})();

42. cancelAnimFrame-Kompatibilitätsmethode

fenster.cancelAnimFrame = (funktion () {
    Fenster zurückgeben.AnimationsFrame abbrechen ||
        window.webkitAnimationFrame abbrechen ||
        window.mozAnimationFrame abbrechen ||
        Funktion (ID) {
            Fenster.ClearTimeout(id);
        };
})();

43. JSONP-zugrundeliegende Methode

Funktion jsonp(URL, Rückruf) {
    var oscript = document.createElement('Skript');
    if (oscript.readyState) { // IE8 und darunter oscript.onreadystatechange = function () {
            if (oscript.readyState === 'abgeschlossen' || oscript.readyState === 'geladen') {
                Rückruf();
            }
        }
    } anders {
        oscript.onload = Funktion () {
            Rückruf()
        };
    }
    oscript.src = URL;
    Dokument.body.appendChild(oscript);
}

44. Holen Sie sich die Parameter der URL

Funktion getUrlParam(sUrl, sKey) {
    var Ergebnis = {};
    sUrl.replace(/(\w+)=(\w+)(?=[&|#])/g, Funktion (Element, Schlüssel, Wert) {
        wenn (!Ergebnis[Schlüssel]) {
            Ergebnis[Schlüssel] = Wert;
        } anders {
            var temp = Ergebnis[Schlüssel];
            Ergebnis[Schlüssel] = [].concat(temp, val);
        }
    })
    wenn (!sSchlüssel) {
        Ergebnis zurückgeben;
    } anders {
        Ergebnis zurückgeben[sKey] || '';
    }
}

45. Zeit formatieren

Funktion formatDate(t, str) {
    var obj = {
        yyyy: t.getFullYear(),
        yy: ("" + t.getFullYear()).slice(-2),
        M: t.getMonth() + 1,
        MM: ("0" + (t.getMonth() + 1)).slice(-2),
        d: t.getDate(),
        dd: ("0" + t.getDate()).slice(-2),
        H: t.getHours(),
        HH: ("0" + t.getHours()).slice(-2),
        h: t.getHours() % 12,
        hh: ("0" + t.getHours() % 12).slice(-2),
        m: t.getMinutes(),
        mm: ("0" + t.getMinutes()).slice(-2),
        s: t.getSeconds(),
        ss: ("0" + t.getSeconds()).slice(-2),
        w: ['日', 'MON', 'TU', 'MI', 'DO', 'FR', 'SA'][t.getDay()]
    };
    return str.replace(/([az]+)/ig, Funktion ($1) {
        Rückgabeobjekt [$1]
    });
}

46. ​​​​Regulärer Ausdruck zum Überprüfen von E-Mail-Adressen

Funktion istVerfügbareE-Mail(sE-Mail) {
    var reg = /^([\w+\.])+@\w+([.]\w+)+$/
    returniere reg.test(sEmail)
}


47. Funktions-Currying

Es handelt sich um eine Technik zum Umwandeln einer Funktion, die mehrere Parameter akzeptiert, in eine Funktion, die einen einzelnen Parameter akzeptiert (den ersten Parameter der ursprünglichen Funktion) und eine neue Funktion zurückgibt, die die verbleibenden Parameter akzeptiert und das Ergebnis zurückgibt.

Funktion curryIt(fn) {
    var Länge = fn.Länge,
        Argumente = [];
    var Ergebnis = Funktion (Argument) {
        args.push(arg);
        Länge--;
        wenn (Länge <= 0) {
            gibt fn.apply(diese, args) zurück;
        } anders {
            Ergebnis zurückgeben;
        }
    }
    Ergebnis zurückgeben;
}

48. Große Zahlen addieren

Funktion SummeGroßeZahl(a, b) {
    var res = '', // Ergebnis temp = 0; // Ergebnis der bitweisen Addition und Übertrag a = a.split('');
    b = b.split('');
    während (a.Länge || b.Länge || temp) {
        //~~Bitweises NICHT 1. Typkonvertierung, konvertiert in Zahl 2.~~undefined==0 
        temp += ~~a.pop() + ~~b.pop();
        res = (Temp % 10) + res;
        Temperatur = Temperatur > 9;
    }
    gibt res.replace(/^0+/, '') zurück;
}

49. Singleton-Muster

Funktion getSingle(Funktion) {
    var Ergebnis;
    Rückgabefunktion () {
        wenn (!Ergebnis) {
            Ergebnis = neue Funktion (Argumente);
        }
        Ergebnis zurückgeben;
    }
}

Dies ist das Ende dieses Artikels über die häufig verwendete Front-End-JavaScript-Methodenkapselung. Weitere relevante Inhalte zur Front-End-JavaScript-Methodenkapselung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Schritte zum Einkapseln von JS in ein Plug-In
  • Beispiel einer in nativem JS gekapselten Ajax-Methode
  • Allgemeine Tool-Methodenkapselung in JavaScript
  • Native js implementiert Beispielmethoden wie Dateiupload, -download und -verpackung
  • Kapselungsmethode der JavaScript-Zeitlupenanimationsfunktion
  • js implementiert eine einfache Methode zur Kapselung von jQuery und eine detaillierte Erklärung der Kettenoperationen
  • Allgemeine Methoden und Kapselungsdetails in JavaScript

<<:  So fügen Sie einem Benutzer in einer Linux-Umgebung Sudo-Berechtigungen hinzu

>>:  Detaillierte Erläuterung der langsamen MySQL-Protokollabfrage

Artikel empfehlen

Uniapps Erfahrung in der Entwicklung kleiner Programme

1. Erstellen Sie ein neues UI-Projekt Zunächst ei...

So veröffentlichen Sie statische Ressourcen in Nginx

Schritt Platzieren Sie die vorbereiteten statisch...

Zusammenfassung der wichtigsten Wissenspunkte zur MySQL-Abfrageoptimierung

Vorwort Abfrageoptimierung ist nichts, was über N...

Einführung in verschiedene Möglichkeiten zur Einführung von CSS in HTML

Inhaltsverzeichnis 1. CSS-Stile direkt in HTML-Ta...

Detaillierte Erklärung der dynamischen Komponenten von vue.js

:ist eine dynamische Komponente Verwenden Sie v-b...

Lösung für das Root-Passwort-Anmeldeproblem in MySQL 5.7

Nachdem ich herausgefunden hatte, dass der vorher...

Der einfachste Weg, MySQL 5.7.20 mit yum in CentOS 7 zu installieren

Die Standarddatenbank von CentOS7 ist MariaDB, ab...

Lösung für Win10 ohne Hyper-V

Suchen Sie immer noch nach einer Möglichkeit, Hyp...

Lernen Sie schnell die MySQL-Grundlagen

Inhaltsverzeichnis SQL verstehen SELECT verstehen...

Data URI und MHTML Komplettlösung für alle Browser

Daten-URI Data URI ist ein durch RFC 2397 definie...

Zusammenfassung der Bootstrap-Lernerfahrung - Austausch von Designs im CSS-Stil

Aufgrund der Anforderungen des Projekts habe ich ...