【发布时间】:2015-10-15 12:41:48
【问题描述】:
我正在尝试制作一个基本游戏来增强我的 JavaScript 知识。但是我需要一些帮助来尝试向对象添加私有方法。这样做的原因是我希望用户在达到特定条件后能够访问某些动作,但不是在此之前。我也不想每次角色升级时都添加方法。这是一些代码:
function Character(name, type, sex) {
this.name = name;
this.type = type;
this.sex = sex;
//Ignore this part as well this.punch = function() {
//Ignore this. Will work on later
}
};
var rock = new Character('Stoner', 'Rock', 'Male');
【问题讨论】:
-
不管命令的可见性如何,UI 应该提供对此类功能的访问(或不提供),除非您希望人们自己重写 js 代码...
-
哦,我忘了补充,不会有任何图形用户界面,因为这将非常简单(刚刚完成了 codecademy 中的 JS 课程)
-
好吧,在构造函数中你可以这样做:
Object.defineProperty(this, "punch", {get:function(){return this.type=='master' ? punch : Boolean }});,如果条件尚未满足,则使用私有打孔函数或布尔值。
标签: javascript methods private