javascript与原型和回调的绑定过多

javascript与原型和回调的绑定过多,javascript,node.js,oop,prototype,Javascript,Node.js,Oop,Prototype,所以我正在node中编写一个控制台游戏。这是一个简单的游戏,它在控制台中接受一些用户输入来玩。没有用户界面。我正在测试我对面向对象编程的知识,因此我创建了一个游戏构造函数和特定的游戏构造函数(例如checkers)。我遇到的一个大问题是,我需要按一定的顺序调用函数,就像在具有回调的节点中通常做的那样。在我的原型中,我必须将其绑定到每个函数调用,以便访问正确的方法并跟踪已定义的字段。这样做是错误的吗?这似乎使事情变得过于复杂。如果需要的话,我可以发布一些示例代码,但我只是对这类代码的一般架构感到好

所以我正在node中编写一个控制台游戏。这是一个简单的游戏,它在控制台中接受一些用户输入来玩。没有用户界面。我正在测试我对面向对象编程的知识,因此我创建了一个游戏构造函数和特定的游戏构造函数(例如checkers)。我遇到的一个大问题是,我需要按一定的顺序调用函数,就像在具有回调的节点中通常做的那样。在我的原型中,我必须将其绑定到每个函数调用,以便访问正确的方法并跟踪已定义的字段。这样做是错误的吗?这似乎使事情变得过于复杂。如果需要的话,我可以发布一些示例代码,但我只是对这类代码的一般架构感到好奇


我的另一个问题是,当我有一个接受inut的原型时,如果该输入通过this上下文在对象上可用,我应该使用this.field作为参数还是调用传递该参数的函数?

如果您经常执行
.bind(this)
,您可能需要附带的词法范围。一个非常常见的范例是在回调外部的变量中捕获
this
,该变量可以在回调内部使用,例如
var self=this
,然后在回调内部使用
self
代替
this
。您也可以
.bind
,而且不必为此感到难过。@lonesomeday arrow函数仅在ES6中可用,对吗?对于这个问题,我仅限于ES5。虽然我可以使用像babel这样的东西将其编译成ES5吗?@Adam我正在考虑这样做,因为它最有意义。我不知道这是否是反模式。我的评分不是基于代码的功能(因为它应该100%有效),而是基于代码的设计。@laynthebech正确,是的。