Avant-propos
Résumez le sucre de syntaxe JavaScript que j'ai rencontré récemment et partagez-le avec tout le monde.
Chaque bonbon contient des instructions détaillées et des exemples, je n'entrerai donc pas dans les détails.
Vérification précise du type
/*
* @fonction :
* Exemple de vérification de type
* Grâce à cette méthode, vous pouvez vérifier si une variable est le type de données attendu
* @params :
* variable obj à vérifier, obligatoire
* Liste blanche des types de données de configuration, facultatif, tous les types par défaut
* @retour :
* vrai signifie que le contrôle a réussi, faux signifie qu'il a échoué
* @exemples :
* typeCheck("str"); //retourne vrai
* typeCheck({},{"[object Array]": 1}); //return false
*/
fonction typeCheck(obj,config){
var hasOp = Objet.prototype.hasOwnProperty,
toStr = Object.prototype.toString,
_config = configuration || {
"[objet Objet]": 1,
"[Tableau d'objets]": 1,
"[objet Regex]": 1,
"[chaîne d'objet]": 1,
"[Numéro d'objet]": 1,
"[objet booléen]": 1,
"[Fonction objet]": 1,
"[objet non défini]": 1,
"[objet Null]": 1
};
Retour hasOp.call(_config,toStr.call(obj));
>
Une manière élégante d'ajouter des prototypes
/*
* @description :
* Une façon élégante d'ajouter des prototypes
* Exécutez simplement cet extrait de code dans le domaine public
*/
if(typeof Function.prototype.method !== "function") {
Function.prototype.method = function(nom,fn){
This.prototype[nom] = fn;
Renvoyez ceci ;
};
>
/*
* Exemple d'utilisation
*/
//Définir une "classe de test"
fonction testFn(){
>
//Ajouter des méthodes membres de la classe de test
testFn.method("ajouter",fonction(a,b){
Renvoyer un b ;
}).method("sub",function(a,b){
Retourner a - b ;
});
//Instanciation
var testObj = new testFn();
//Appeler la méthode membre
testObj.add(1,5); //retour 6
testObj.sub(7,2); //retour 5
Créez rapidement un espace de noms
/*
* @fonction :
* Créer un espace de noms
* @params :
* ex expression d'espace de noms, par exemple : NSROOT.service.impl
* Cette expression doit être écrite à partir du nœud racine
* @retour :
* Renvoie un Objet, cet Objet est le dernier nœud de l'expression
* @autres :
* Si vous n'aimez pas le nom NSROOT, recherchez et remplacez simplement
*/
var NSROOT = NSROOT || {};
NSROOT.namespace = fonction(ex){
var _ex = ex ||
nsArray = _ex.split("."),
parentNode = NSROOT,
_s = "",
je = 0;
//Déterminez si l'espace de noms commence à partir du nœud racine
if(nsArray[0] !== "NSROOT"){
throw("L'espace de noms doit commencer à partir du nœud racine !");
>
//Supprimer le nœud racine
nsArray = nsArray.slice(1);
pour(i = 0;i
_s = nsArray[i];
Si(parentNode[_s] === non défini){
parentNode[_s] = {};
>
parentNode = parentNode[_s];
>
Renvoie parentNode;
};
/*
* Exemple d'utilisation
*/
//Créer un nouvel espace de noms
var impl = NSROOT.namespace("NSROOT.service.impl");
alert(impl === NSROOT.service.impl); //return true
//Créez un espace de noms existant sans écraser les données d'origine
NSROOT.namespace("NSROOT.service.impl");
alert(impl === NSROOT.service.impl); //return true