要使用公共方法创建 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
and use_restroom
方法,但不是由类的用户外部调用?
换句话说,我希望我的方法实现能够执行以下操作:
Restaurant.prototype.use_restroom = function() {
this.private_stuff();
}
但这不应该起作用:
var r = new Restaurant();
r.private_stuff();
我如何定义private_stuff
作为私有方法,这两者都成立吗?
我读了道格·克罗克福德的文章 http://javascript.crockford.com/private.html几次,但似乎公共方法不能调用“私有”方法,并且可以从外部调用“特权”方法。
你可以这样做,但缺点是它不能成为原型的一部分:
function Restaurant() {
var myPrivateVar;
var private_stuff = function() { // Only visible inside Restaurant()
myPrivateVar = "I can set this here!";
}
this.use_restroom = function() { // use_restroom is visible to all
private_stuff();
}
this.buy_food = function() { // buy_food is visible to all
private_stuff();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)