Warum bevorzugt jslint {} .constructor (obj) über Object (obj)

8

Beide erkennen Objekte und nicht Primitive.

Es scheint wie ein rein syntaktischer Unterschied.

%Vor%     
Kevin Brown 27.06.2014, 21:41
quelle

2 Antworten

4

Ich bin mir nicht ganz sicher, wie es nicht sollte. Wenn Sie Leistung betrachten, dann ist das das Gegenteil von dem, was Sie tun sollten.

Laut ist dieser JSPerf-Test verfügbar, der die Geschwindigkeit der Erstellung über new Object() , Object.create().new() und% vergleicht. co_de% (das ist das gleiche wie Object.prototype.constructor() ); Object.constructor() ist bei weitem die langsamste von allen .

Google V8-Engine ist Größen schneller mit dem Object.constructor() , weil es den Aufruf so stark optimiert, so dass ich wirklich keine Sorgen machen würde.

Ergebnisse des JSPerf-Tests:

    
Evan Darwin 01.07.2014 13:31
quelle
1

Das ist falsch positiv. Verwenden Sie Object , es ist prägnanter, klarer und schneller.

Es ist verständlich, dass " JSLint nicht erwartet, new Object zu sehen. "- Sie sollten stattdessen ein Objektliteral verwenden . Die gleiche Warnung wird jedoch fälschlicherweise ausgegeben , auch wenn Object als Funktion aufgerufen wird . Dies könnte sein, um Object() creations zu erkennen, aber es ist nichts falsch daran, Object mit einem Argument aufzurufen.

    
Bergi 01.07.2014 13:56
quelle

Tags und Links