建立真正私有方法的缺點

在 Javascript 中建立私有方法的一個缺點是記憶體效率低,因為每次建立新例項時都會建立私有方法的副本。看這個簡單的例子。

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);
    };
}

當你建立幾個例項時,它們都有 formatPhoneNumber 方法的副本

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

因此,只有在必要時才能避免使用私有方法。