JavaScript Inconveniente di creare un vero metodo privato


Esempio

Uno svantaggio della creazione di un metodo privato in Javascript è la memoria inefficiente perché una copia del metodo privato verrà creata ogni volta che viene creata una nuova istanza. Vedi questo semplice esempio.

function contact(first, last) {
    this.firstName = first;
    this.lastName = last;
    this.mobile;

    // private method
    var formatPhoneNumber = function(number) {
        // format phone number based on input
    };

    // public method
    this.setMobileNumber = function(number) {
        this.mobile = formatPhoneNumber(number);
    };
}

Quando crei poche istanze, tutte hanno una copia del metodo formatPhoneNumber

var rob = new contact('Rob', 'Sanderson');
var don = new contact('Donald', 'Trump');
var andy = new contact('Andy', 'Whitehall');

Quindi, sarebbe bello evitare di usare il metodo privato solo se è necessario.