Heim >Web-Frontend >js-Tutorial >So verwenden Sie die isPlainObject()-Methode von jQuery
Dieses Mal zeige ich Ihnen, wie Sie die isPlainObject()-Methode von jQuery verwenden. Was sind die Vorsichtsmaßnahmen bei der Verwendung der isPlainObject()-Methode von jQuery?
Erklärung
Die Funktion isPlainObject() in jQuery wird verwendet, um zu bestimmen, ob der angegebene Parameter ein reines Objekt ist und der Rückgabewert vom booleschen Typ ist.
„Reine Objekte“ sind Objekte, die durch {}, new Object(), Object.create(null) erstellt wurden.
Der Zweck dieser Methode besteht darin, sie von anderen JavaScript-Objekten wie Null, Arrays, Hostobjekten (Dokumenten), DOM usw. zu unterscheiden, da die Verwendung von typeof auf diese ein Objekt zurückgibt .
Verwenden Sie
Syntax:
$.isPlainObject( object )
Parameterbeschreibung:
Objekt: Jeder Wert jeglicher Art, der beurteilt werden muss.
$.isPlainObject({}); //true $.isPlainObject(new Object); //true $.isPlainObject(Object.create(null)); //true $.isPlainObject([]); //false $.isPlainObject(document); //false
Quellcode-Analyse
Werfen wir einen Blick auf den Quellcode unter jQuery 3.3.1-Version: 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;
Zusammenfassung
Aus dem Quellcode ist die Implementierung von isPlainObject( ) Methode, hauptsächlich in drei Teile unterteilt
1. Entfernen Sie den Typ, der nicht Object ist.
verwendet die Methode Object.prototype.toString.call() Alle Typen, anstelle von Typeof, da Typeof nur Basistypen wie Arrays unterscheiden kann, gibt Typeof weiterhin die Zeichenfolge „Objekt“ zurück
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. Bestimmen Sie, ob das Objekt einen Prototyp hat. Objekte ohne Prototypen gelten als reine Objekte
3. Bestimmen Sie, ob das Objekt durch „{}“ oder „neues Objekt“ erstellt wird
Dies erfordert die Beurteilung ihres Konstruktors, also verwenden Sie die Function.prototype.toString-Methode
Das Funktionsobjekt überschreibt die von Object geerbte Methode Object.prototype.toString.
Die toString-Methode der Funktion gibt einen String zurück, der den Quellcode der Funktion darstellt. Insbesondere umfasst es das Funktionsschlüsselwort, die formale Parameterliste, geschweifte Klammern und den Inhalt im Funktionskörper.
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] }"
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
So implementieren Sie die Toggle-Methode in jQuery
So implementieren Sie jQuery+JSONP domänenübergreifend
So verwenden Sie die Select-Komponente in JQuery
So erzielen Sie den JQuery-Carriage-Return-Anmeldeeffekt
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die isPlainObject()-Methode von jQuery. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!