要使用公共方法创建 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 的 文章几次,但似乎“私有”方法不能被公共方法调用,而“特权”方法可以在外部调用。
原文由 Wayne Kao 发布,翻译遵循 CC BY-SA 4.0 许可协议
你可以这样做,但缺点是它不能成为原型的一部分: