最佳答案
要创建一个带有公共方法的JavaScript类,我可以这样做:
function Restaurant() {}
Restaurant.prototype.buy_food = function(){
// something here
}
Restaurant.prototype.use_restroom = function(){
// something here
}
这样,我类的用户就可以:
var restaurant = new Restaurant();
restaurant.buy_food();
restaurant.use_restroom();
我如何创建一个私有方法,可以由buy_food
和use_restroom
方法调用,但不能由类的用户外部调用?
换句话说,我希望我的方法实现能够做到:
Restaurant.prototype.use_restroom = function() {
this.private_stuff();
}
但这是行不通的:
var r = new Restaurant();
r.private_stuff();
我如何定义private_stuff
作为一个私有方法,使这两个都成立?
我读过道格·克罗克福德的报道几次,但它似乎不像“私有”方法可以被公共方法调用,而“特权”方法可以被外部调用。