在&符号中相互依赖的派生属性?

时间:2016-01-27 19:47:52

标签: javascript coffeescript state ampersand.js

我想创建一个矢量的符号状态表示,该矢量同时保存有关它的极坐标和矩形表示的信息。

即。我希望用户能够做到:

vector.angle = 90
vector.mag = 1
console.log vector.y #=> 1

-OR -

vector.x = 0
vector.y = 1
console.log vector.angle #=> 90 

任何人都可以想到用&符号做到这一点的方法吗?

1 个答案:

答案 0 :(得分:0)

这是一个老问题,但有人可能需要这个。 马上我可以想到一种方法来做到这一点。您需要使所有变量独立,然后监听更改以更新其他值。因此,您要在模型变量propsanglemagx的{​​{1}}中定义,然后在y中附加事件侦听器你的观点或其他地方的每个变量。例如,对于initialize,您可以执行以下操作:

angle

并为四个变量中的每一个重复这一点(有优化的空间,但你明白了。为了避免与这个例子的循环依赖关系,你需要确保一旦你重新计算,例如,通过使用任何x,你得到相同的角度。