JavaScript new Object (funzione) vs inline
-
24-09-2019 - |
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?
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 è