Eine clevere Implementierung entdeckt: Sie müssen prüfen, ob ein Objekt (Object) leer ist, das heißt, es enthält keine Elemente. Ein Objekt in Javascript ist ein Wörterbuch, das eine Reihe von Schlüssel-Wert-Paaren enthält. Die Prüfung, ob ein Objekt leer ist, entspricht der Prüfung, ob das Objekt Schlüssel-Wert-Paare enthält. Als Code geschrieben sieht es so aus:
if (isEmptyObject(obj)) { // obj is empty } else { // not empty }
Was die Implementierung von isEmptyObject betrifft, gibt es in jQuery eine sehr kreative Möglichkeit, siehe Code:
function isEmptyObject(obj) { for (var key in obj) { return false; } return true; }
Obwohl Javascript die Methode isEmpty() nicht nativ bereitstellt, stellt es einen Iterator bereit, der zum Durchlaufen aller Schlüssel-Wert-Paare verwendet werden kann. Was jQuery also tut, ist zu durchlaufen. Wenn ein Schlüssel-Wert-Paar vorhanden ist, bedeutet dies, dass das Objekt nicht leer ist und direkt false zurückgibt. In Bezug auf die Effizienz wird die tatsächliche Leistung nicht viel schlechter sein als bei der nativen Methode, da nur ein Element gelesen wird und höchstens ein gewisser Overhead durch das Herausspringen aus der Schleife entsteht.
function isNullObj(obj){ for(var i in obj){ if(obj.hasOwnProperty(i)){ return false; } } return true; }
Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, er gefällt euch allen.
Weitere verwandte Tutorials finden Sie unter JavaScript-Grundlagen-Tutorial