【发布时间】:2017-01-30 15:20:42
【问题描述】:
我目前正在尝试编写 pacman 代码,但遇到了一个问题: 由于所有的 Ghosts 都使用相同的寻路并且通常非常相似,因此我想为它们使用原型。他们真正不同的唯一属性是他们选择目标位置的方式。我想为原型提供一个功能并将其用作吸气剂。这可能吗?
function Ghost(color,x,y,getterFunction){
this.color = color;
this.x = x;
this.y = y;
this.direction = "up";
this.move = function(){
//Pathfind towards this.target
}
this.target = getterFunction; //or something like this...
}
感谢您的帮助:^)
【问题讨论】:
-
没有。如果这就是它们的不同之处,那就是你不想想放在原型上的东西。
-
只需使用
this.target()而不是this.target,您的代码应该可以工作。 -
你考虑过使用 ES6 类吗?您可以使用 Babel 转译代码以在所有浏览器中工作
-
@royalsampler 无论如何我都不知道如何使用类...但是感谢 Babel 提示...我不知道。
-
@Bergi 我想简单地将其从原型中删除,但这使得一次性初始化对象成为不可能。之后我需要添加函数......但是根本不使用吸气剂的技巧很棒:) Tahnks!
标签: javascript parameters parameter-passing prototype getter