使用公共方法创建一个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定义为私有方法,这两种方法都适用? 我已经读了Doug Crockford的几次写作 ,但是看起来好像“私有”方法可以通过公共方法调用,“特权”方法可以从外部调用。