Vorwort
Fassen wir den JavaScript -Syntaxzucker zusammen, mit dem ich in letzter Zeit in Kontakt gekommen bin, und teilen Sie es mit Ihnen.
Jedes Stück Süßigkeit hat detaillierte Anweisungen und Beispiele, daher werde ich nicht viel sagen.
Genaue Typprüfung
Die Codekopie lautet wie folgt:
/*
* @Function:
* Geben Sie das Prüfbeispiel ein
* Mit dieser Methode können Sie überprüfen, ob eine Variable der erwartete Datentyp ist
* @params:
* OBJ -Variablen, die überprüft werden müssen, erforderlich
* Konfigurationsdatentyp Whitelist, optional, Standard für alle Typen
* @zurückkehren:
* Wahre bedeutet, dass der Scheck übergeben wird, falsch fehlgeschlagen
* @Examples:
* typecheck ("str"); // true zurückgeben
* typecheck ({}, {"[Objektarray]": 1}); // false zurückgeben
*/
Funktion typecheck (obj, config) {
var Haseop = Object.Prototype.hasownProperty,
tostr = Object.Prototype.toString,
_config = config || {
"[Objektobjekt]": 1,
"[Objektarray]": 1,,
"[Object Regex]": 1,,
"[Objektstring]": 1,
"[Objektnummer]": 1,,
"[Objekt boolean]": 1,,
"[Objektfunktion]": 1,,
"[Objekt undefiniert]": 1,,
"[Objekt NULL]": 1
};
return haseop.call (_config, tostr.call (obj));
}
Elegante Art, Prototypen hinzuzufügen
Die Codekopie lautet wie folgt:
/*
* @Beschreibung:
* Elegante Möglichkeit, Prototypen hinzuzufügen
* Führen Sie einfach diesen Code -Snippet im öffentlichen Bereich aus
*/
if (typeof function.prototype.method! == "function") {
Function.prototype.method = Funktion (Name, fn) {
this.prototype [name] = fn;
gib dies zurück;
};
}
/*
* Beispiel für die Nutzung
*/
// Definieren Sie eine "Testklasse"
Funktion testfn () {
}
// Fügen Sie eine Testklassenmitgliedmethode hinzu
testfn.method ("add", function (a, b) {
Return a + b;
}). Methode ("sub", Funktion (a, b) {
Rückkehr a - b;
});
// Instanziierung
var testObj = new TestFn ();
// Member -Methode aufrufen
testobj.add (1,5); // Rückkehr 6
testObj.sub (7,2); // Rückkehr 5
Erstellen Sie schnell einen Namespace
Die Codekopie lautet wie folgt:
/*
* @Function:
* Erstellen Sie einen Namespace
* @params:
* Ex -Namespace -Expression, zum Beispiel: nsroot.service.impl
* Dieser Ausdruck muss vom Stammknoten aus beginnen
* @zurückkehren:
* Gibt ein Objekt zurück, das der letzte Knoten des Ausdrucks ist
* @others:
* Wenn Sie den Namen NSROOT nicht mögen, suchen Sie einfach nach dem Ersatz
*/
var nsroot = nsroot || {};
Nsroot.namespace = function (ex) {
var _ex = ex || "",
nsArray = _ex.split ("."),
parentNode = nsroot,
_s = "",
i = 0;
// Beurteilen Sie, ob der Namespace vom Stammknoten startet
if (nsarray [0]! == "nsroot") {
throw ("Der Namespace muss vom Stammknoten aus starten!");
}
// den Wurzelknoten entfernen
nsArray = nsarray.slice (1);
für (i = 0; i <nsArray.length; i ++) {
_s = nsarray [i];
if (parentNode [_s] === undefined) {
parentNode [_s] = {};
}
parentNode = parentNode [_s];
}
Return ParentNode zurückgeben;
};
/*
* Beispiel für die Nutzung
*/
// Erstellen Sie einen neuen Namespace
var impl = nsroot.namespace ("nsroot.service.impl");
alert (impl === nsroot.service.impl); // true zurückgeben
// Erstellen Sie einen vorhandenen Namespace, ohne die Originaldaten zu überschreiben
Nsroot.namespace ("nsroot.service.impl");
alert (impl === nsroot.service.impl); // true zurückgeben