0

我将原型继承与 Circle 和 Square 对象都继承自 RootShape 对象。我正在使用 EaselJS,但不确定我遇到的行为是否特定于原型继承、EaselJS 库或两者的混合。

你可以在这里看到我的问题:http: //fiddle.jshell.net/sdg9/UNY6E/

当我将事件侦听器(特别是pressmove侦听器)添加到 Circle 或 Square 原型时,它会按我的预期工作。所有圆形对象都响应圆形原型侦听器,所有方形对象都响应方形原型侦听器。

RootShape当我向Circle 和 Square 都继承自的原型添加事件侦听器时,我遇到了一个奇怪的行为。Square 事件触发 Circle 侦听器,反之亦然。事实上,所有 3 个侦听器(on RootShapeCircleSquare)都被触发。我不认为原型链下游的对象会以这种方式发生冲突。我可以采取另一种方法来eventListenerRootShape对象上设置一个而不导致 Square 和 Circle 触发彼此的听众吗?

4

1 回答 1

2

您定义的所有事件侦听器似乎都添加到您的 RootShape 原型而不是每个子原型中。一个解决方案是在初始化每个子原型时添加事件侦听器。

于 2013-11-06T15:51:12.727 回答