建立真正私有方法的缺點
在 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');
因此,只有在必要時才能避免使用私有方法。