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