Heim >Web-Frontend >js-Tutorial >So verwenden Sie die isPlainObject()-Methode von jQuery

So verwenden Sie die isPlainObject()-Methode von jQuery

php中世界最好的语言
php中世界最好的语言Original
2018-03-14 16:21:271716Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn