Cette fois, je vais vous montrer comment utiliser la méthode isPlainObject() de jQuery. Quelles sont les précautions lors de l'utilisation de la méthode isPlainObject() de jQuery. Ce qui suit est un cas pratique, jetons un coup d'œil.
Explication
La fonction isPlainObject() dans jQuery est utilisée pour déterminer si le paramètre spécifié est un objet pur et si la valeur de retour est de type booléen.
Les "objets purs" sont des objets créés via { }, new Object(), Object.create(null).
Le but de cette méthode est de la distinguer des autres objets JavaScript tels que null, tableaux, objets hôtes (documents), DOM, etc., car l'utilisation de typeof sur ceux-ci renverra un objet .
Utiliser
Syntaxe :
$.isPlainObject( object)
Description du paramètre :
object : Toute valeur de tout type qui doit être jugée.
$.isPlainObject({}); //true $.isPlainObject(new Object); //true $.isPlainObject(Object.create(null)); //true $.isPlainObject([]); //false $.isPlainObject(document); //false
Analyse du code source
Regardons le code source sous la version jQuery 3.3.1 : https://github .com/ jquery/jquery/blob/ac9e3016645078e1e42120822cfb2076151c8cbe/src/core.js#L236
var class2type = {}; //Object.getPrototypeOf() 方法返回指定对象的原型(内部[[Prototype]]属性的值)。 var getProto = Object.getPrototypeOf; //相当于 Object.prototype.toString var toString = class2type.toString; //hasOwnProperty() 方法会返回一个布尔值,指示对象自身属性中是否具有指定的属性 //相当于 Object.prototype.hasOwnProperty var hasOwn = class2type.hasOwnProperty; //因为 hasOwn 是一个函数,所以这里调用的是内置对象 Function 的toString() 方法 //相当于 Function.prototype.toString var fnToString = hasOwn.toString; //相当于 Function.prototype.toString.call(Object) //就是Object 构造函数 转字符串的结果 // ObjectFunctionString 其实就是 "function Object() { [native code] }" 这样的一个字符串 var ObjectFunctionString = fnToString.call(Object); function isPlainObject (obj) { var proto, Ctor;
Résumé
À partir du code source, l'implémentation de isPlainObject( ), principalement divisée en trois parties
1. Supprimez le type qui n'est pas Object
utilise la méthode Object.prototype.toString.call(). tous les types, au lieu d'utiliser typeof, car typeof ne peut distinguer que les types de base, tels que les tableaux, typeof renvoie toujours la chaîne "objet"
var arr = []; var obj = {}; typeof arr; //"object" typeof obj; //"object" typeof document; //"object" Object.prototype.toString.call(arr); //"[object Array]" Object.prototype.toString.call(obj); //"[object Object]" Object.prototype.toString.call(document); //"[object HTMLDocument]"
2. Déterminez si l'objet a un prototype Objets sans prototypes. sont considérés comme des objets purs
3. Déterminez si l'objet est créé via "{}" ou "new Object"
Cela nécessite de juger leur constructeur, utilisez donc la méthode Function.prototype.toString
L'objet Function remplace la méthode Object.prototype.toString héritée de Object.
La méthode toString de la fonction renverra une chaîne représentant le code source de la fonction. Plus précisément, il inclut le mot-clé de fonction, la liste de paramètres formels, les accolades et le contenu du corps de la fonction.
function fn(said){ this.say = said; } Function.prototype.toString.call(fn); //"function fn(said){ // this.say = said; //}" Function.prototype.toString.call(Object); //"function Object() { [native code] }"
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !
Lecture recommandée :
Comment implémenter la méthode toggle dans jQuery
Comment implémenter jQuery+JSONP inter-domaines
Comment utiliser le composant select dans jquery
Comment obtenir l'effet de connexion de retour chariot jquery
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!