2016-05-04 4 views
1

Wie google ich diese Frage, so eine Person geben Antwort, dass die Eigenschaft ist schneller als Methode und geben Sie ein Beispiel für size() und length.Eigenschaft ist schneller als Methode? Brauchen Grund dafür

Er sagte Länge ist schneller als Größe, weil Länge Eigenschaft ist. Kannst du mich bitte wissen lassen, ob es richtig ist? Oder wenn Sie ein Beispiel geben, dann wird es für mich großartig sein.

+0

'size()' wurde als veraltet –

+0

@RajaprabhuAravindasamy Darf ich die Bedeutung von veraltet wissen? –

+0

@jdsays Es wurde geplant, aus der Bibliothek entfernt zu werden. Es kann jederzeit entfernt werden. Es ist also gut, die veralteten Funktionen/Eigenschaften aus einer Bibliothek nicht zu verwenden./ –

Antwort

2

Ich gehe davon aus, dass Sie die Länge eines Strings oder die Anzahl der Elemente in einem Array erhalten möchten.

size() ist keine Methode der Array- oder String-Objekte. Also wenn es eine Bibliothek gibt oder du selbst diese Methode zu den jeweiligen Prototypen hinzugefügt hast. length auf der anderen Seite ist eine Standardeigenschaft und (sollte) in jeder JS-Laufzeit vorhanden sein.

Sofern Sie nicht Länge verwenden können, wird die Größe Funktion einfach unnötigen Overhead hinzufügen, und ich würde für die Eigenschaft gehen.

Überprüfen Sie die folgenden die zu Links: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/prototype

1

Wenn Sie length Eigenschaft gelesen wird dann nur die Zeit erforderlich, um eine Objekteigenschaft zuzugreifen benötigt.

Wenn Sie jedoch size() anrufen, wird zuerst eine Funktion aufgerufen, diese Funktion liest intern die length Eigenschaft und gibt dann diesen Wert an den Aufrufer zurück.

Sie können deutlich sehen, dass Sie in beiden Fällen das gleiche tun. Aber wenn Sie die Funktion aufrufen, dann wird es Zeit sind für den Aufruf einer Funktion + zu diesen Wert zurückkehrt ..

4

size ruft intern die Länge

//http://code.jquery.com/jquery-latest.js 
// The number of elements contained in the matched element set 
     size: function() { 
       return this.length; 
     }, 

Wenn Sie also Länge verwenden dann meiden Sie ein extra Methodenaufruf. Die Jquery docs sagt:

die .size() Methode zur .length Eigenschaft funktionell äquivalent ist; jedoch die .length -Eigenschaft ist bevorzugt, weil es keine Overhead eines Funktionsaufrufs hat.

Verwandte Themen