Vorwort
Fassen Sie den JavaScript-Syntax-Zucker zusammen, auf den ich kürzlich gestoßen bin, und teilen Sie ihn mit allen.
Zu jedem Bonbonstück gibt es detaillierte Anweisungen und Beispiele, daher werde ich nicht auf Details eingehen.
Genaue Typprüfung
/*
* @function:
* Beispiel für die Typprüfung
* Mit dieser Methode können Sie überprüfen, ob eine Variable den erwarteten Datentyp
hat
* @params:
* Zu prüfende obj-Variable, erforderlich
* Konfigurationsdatentyp-Whitelist, optional, Standard sind alle Typen
* @return:
* true bedeutet, dass die Prüfung bestanden wurde, false bedeutet, dass sie fehlgeschlagen ist
* @examples:
* typeCheck("str"); //true zurückgeben
* typeCheck({},{"[object Array]": 1}); //return false
*/
Funktion typeCheck(obj,config){
var hasOp = Object.prototype.hasOwnProperty,
toStr = Object.prototype.toString,
_config = config ||
„[Objekt Objekt]“: 1,
„[Objektarray]“: 1,
„[object Regex]“: 1,
„[Objektzeichenfolge]“: 1,
„[Objektnummer]“: 1,
„[object Boolean]“: 1,
„[Objektfunktion]“: 1,
„[Objekt undefiniert]“: 1,
„[Objekt Null]“: 1
};
Rückgabe hasOp.call(_config,toStr.call(obj));
}
Elegante Möglichkeit, Prototypen hinzuzufügen
/*
* @description:
* Elegante Möglichkeit, Prototypen hinzuzufügen
* Führen Sie dieses Code-Snippet einfach im öffentlichen Bereich aus
*/
if(typeof Function.prototype.method !== "function") {
Function.prototype.method = function(name,fn){
This.prototype[name] = fn;
Geben Sie dies zurück;
};
}
/*
* Anwendungsbeispiel
*/
//Definiere eine „Testklasse“
Funktion testFn(){
}
//Mitgliedsmethoden der Testklasse hinzufügen
testFn.method("add",function(a,b){
Geben Sie a b;
zurück
}).method("sub",function(a,b){
Geben Sie a - b zurück;
});
//Instantiierung
var testObj = new testFn();
//Member-Methode aufrufen
testObj.add(1,5); //return 6
testObj.sub(7,2); //return 5
Schnell Namespace erstellen
Code kopieren Der Code lautet wie folgt:
/*
* @function:
* Namespace erstellen
* @params:
* Ex-Namespace-Ausdruck, zum Beispiel: NSROOT.service.impl
* Dieser Ausdruck muss beginnend mit dem Wurzelknoten
geschrieben werden
* @return:
* Gibt ein Objekt zurück. Dieses Objekt ist der letzte Knoten des Ausdrucks
* @others:
* Wenn Ihnen der Name NSROOT nicht gefällt, suchen und ersetzen Sie einfach
*/
var NSROOT = NSROOT ||. {};
NSROOT.namespace = function(ex){
var _ex = ex ||. "",
nsArray = _ex.split("."),
parentNode = NSROOT,
_s = "",
i = 0;
//Bestimmen Sie, ob der Namespace vom Stammknoten aus beginnt
if(nsArray[0] !== "NSROOT"){
throw("Der Namespace muss am Wurzelknoten beginnen!");
}
//Wurzelknoten entfernen
nsArray = nsArray.slice(1);
for(i = 0;i
_s = nsArray[i];
If(parentNode[_s] === undefiniert){
parentNode[_s] = {};
}
parentNode = parentNode[_s];
}
Gibt parentNode;
zurück
};
/*
* Anwendungsbeispiel
*/
//Erstelle 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