Préface
Résumons le sucre de syntaxe JavaScript avec lequel je suis entré en contact récemment et le partagez avec vous.
Chaque bonbon a des instructions et des exemples détaillés, donc je ne dirai pas grand-chose.
Vérification de type précis
La copie de code est la suivante:
/ *
* @fonction:
* Exemple de vérification de type
* Cette méthode vous permet de vérifier si une variable est le type de données attendu
* @params:
* Variables OBJ qui doivent être vérifiées, requises
* la liste blanche du type de données de configuration, en option, par défaut à tous les types
* @retour:
* vrai signifie que le chèque est passé, faux échoué
* @examples:
* typeCheck ("str"); // retourne vrai
* typeCheck ({}, {"[Array d'objets]": 1}); // retourne false
* /
fonction typcheck (obj, config) {
var hasop = object.prototype.hasownproperty,
toStr = object.prototype.tostring,
_config = config || {
"[objet objet]": 1,
"[Array d'objets]": 1,
"[objet regex]": 1,
"[String d'objet]": 1,
"[Numéro d'objet]": 1,
"[objet boolean]": 1,
"[Fonction d'objet]": 1,
"[objet non défini]": 1,
"[Object Null]": 1
};
return hasop.call (_config, tostr.call (obj));
}
Moyen élégant d'ajouter des prototypes
La copie de code est la suivante:
/ *
* @description:
* Moyen élégant d'ajouter des prototypes
* Il suffit d'exécuter cet extrait de code dans la portée publique
* /
if (typeof function.prototype.method! == "fonction") {
Function.prototype.method = function (name, fn) {
this.prototype [name] = fn;
retourner ceci;
};
}
/ *
* Exemple d'utilisation
* /
// définir une "classe de test"
fonction testfn () {
}
// Ajouter une méthode de membre de la classe de test
testfn.Method ("add", fonction (a, b) {
retourner a + b;
}). Méthode ("sub", fonction (a, b) {
retourner a - b;
});
// Instanciation
var testoBj = new testfn ();
// Méthode d'appel des membres
testoBJ.Add (1,5); // retour 6
TestObj.Sub (7,2); // retour 5
Créez rapidement un espace de noms
La copie de code est la suivante:
/ *
* @fonction:
* Créer un espace de noms
* @params:
* Expression de l'espace de noms ex, par exemple: nsroot.service.impl
* Cette expression doit commencer à partir du nœud racine
* @retour:
* Renvoie un objet, qui est le dernier nœud de l'expression
* @autres:
* Si vous n'aimez pas le nom nsroot, recherchez simplement le remplacement
* /
var nsroot = nsroot || {};
Nsroot.namespace = fonction (ex) {
var _ex = ex || "",
nsArray = _ex.split ("."),
parentNode = nsroot,
_s = "",
i = 0;
// juger 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!");
}
// Retirez le nœud racine
nsArray = nsArray.slice (1);
pour (i = 0; i <nsArray.length; i ++) {
_s = nsArray [i];
if (parentNode [_s] === Undefined) {
parentNode [_s] = {};
}
parentNode = parentNode [_s];
}
return parentNode;
};
/ *
* Exemple d'utilisation
* /
// Créer un nouvel espace de noms
var impl = nsroot.namespace ("nsroot.service.impl");
alert (impr === nsroot.service.impl); // retourne vrai
// Créer un espace de noms existant sans écraser les données d'origine
Nsroot.namespace ("nsroot.service.impl");
alert (impr === nsroot.service.impl); // retourne vrai