Domanda

Esistono considerazioni per determinare quale sia una pratica migliore per la creazione di un oggetto con i membri privati?

var object = new function () { 
   var private = "private variable";
   return {
       method : function () { 
           ..dosomething with private;
       }
   }
}

Vs

var object = function () {
 ...
}();

Fondamentalmente qual è la differenza tra l'uso di nuovi qui e invocare la funzione immediatamente dopo averla definita?

È stato utile?

Soluzione

Il new L'operatore fa invocare la funzione come a Funzione costruttore.

Ho già visto questo modello prima, ma non vedo alcun vantaggio nell'usarlo.

Lo scopo del new L'operatore è quello di creare un oggetto (il this valore all'interno del costruttore), impostando a destra [[Prototype]] proprietà interna, per costruire il catena prototipo e implementare l'eredità (puoi vedere i dettagli in [[Construct]] operazione).

Ti consiglierei di stare con il Invocazione in linea modello.

Altri suggerimenti

Se stai utilizzando le funzioni come gestori di eventi, puoi ottenere perdite di memoria. Dai un'occhiata ad alcuni dei articoli

Questo collegamento Fornisce statistiche che confermano anche che il modello di invocazione in linea è migliore.

Si prega di notare che la misurazione è in operations per second che più alto è meglio è

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top