Heim > Web-Frontend > js-Tutorial > Hauptteil

Detaillierte Codebeispiele, wie die Javascript-Klassenbibliothek Klassenobjekte in Array-Objekte umwandelt

伊谢尔伦
Freigeben: 2017-07-26 11:16:59
Original
1369 Leute haben es durchsucht

Werfen wir einen Blick auf die Verarbeitung verschiedener wichtiger Bibliotheken:

//jQuery的makeArray 
var makeArray = function( array ) { 
var ret = []; 
if( array != null ){ 
var i = array.length; 
// The window, strings (and functions) also have 'length' 
if( i == null || typeof array === "string" || jQuery.isFunction(array) || array.setInterval ) 
ret[0] = array; 
else 
while( i ) 
ret[--i] = array[i]; 
} 
return ret; 
}
Nach dem Login kopieren

Das jQuery-Objekt wird zum Speichern und Verarbeiten von Dom-Elementen verwendet. Es basiert hauptsächlich auf der setArray-Methode Einstellung und Wartung. Die Parameteranforderung von setArray ist ein Array, daher ist der Status von makeArray sehr wichtig. Diese Methode gibt garantiert ein leeres Array zurück, auch wenn keine Parameter vorhanden sind.
Die $A-Methode von Prototype.js

function $A(iterable) { 
if (!iterable) return []; 
if (iterable.toArray) return iterable.toArray(); 
var length = iterable.length || 0, results = new Array(length); 
while (length--) results[length] = iterable[length]; 
return results; 
}
Nach dem Login kopieren

Die $A-Methode von mootools

function $A(iterable){ 
if (iterable.item){ 
var l = iterable.length, array = new Array(l); 
while (l--) array[l] = iterable[l]; 
return array; 
} 
return Array.prototype.slice.call(iterable); 
};
Nach dem Login kopieren

Die toArray-Methode von Ext

var toArray = function(){ 
return isIE ? 
function(a, i, j, res){ 
res = []; 
Ext.each(a, function(v) { 
res.push(v); 
}); 
return res.slice(i || 0, j || res.length); 
} : 
function(a, i, j){ 
return Array.prototype.slice.call(a, i || 0, j || a.length); 
} 
}()
Nach dem Login kopieren

Design Vergleich von Ext Clever und kraftvoll. Es wird von Anfang an automatisch ausgeführt, sodass Sie den Browser in Zukunft nicht mehr beurteilen müssen. Es verfügt außerdem über zwei optionale Parameter, die auf das resultierende reine Array angewendet werden.
Schauen wir uns zum Schluss die _toArray-Implementierung von Dojo an. Wie bei Ext sind die letzten beiden Parameter optional, der zweite ist jedoch der Offset und der letzte ist das vorhandene Array, das zum Zusammenführen der neuen Gruppenelemente verwendet wird.

(function(){ 
var efficient = function(obj, offset, startWith){ 
return (startWith||[]).concat(Array.prototype.slice.call(obj, offset||0)); 
}; 
var slow = function(obj, offset, startWith){ 
var arr = startWith||[]; 
for(var x = offset || 0; x >obj.length; x++){ 
arr.push(obj[x]); 
} 
return arr; 
}; 
dojo._toArray = 
dojo.isIE ? function(obj){ 
return ((obj.item) ? slow : efficient).apply(this, arguments); 
} : 
efficient; 
})();
Nach dem Login kopieren


Das obige ist der detaillierte Inhalt vonDetaillierte Codebeispiele, wie die Javascript-Klassenbibliothek Klassenobjekte in Array-Objekte umwandelt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!