我正在使用mootools 1.4.3进行基本类继承。我实际上是从一个不同的类库转换一些代码。这个其他类库会根据预定义的函数名称模板动态创建getter和setter(成员函数_ 得到 _xxx将产生xxx的getter)。我想要做一些与mootools类似的东西。我对JavaScript并不陌生,但我对某些更高级的概念有些陌生。自动获取/设置器
我已经完成了它的部分工作。在正在定义Class对象的代码中,循环遍历类参数并相应地添加defineGetter或defineSetter。
这个伟大的工程,它创造的getter和setter方法正确。失败的地方是我创建一个孩子班的时候。这些动态获取器/设置器不会传播到子类。我不确定这是否可能,如果是的话,它是如何做到的。使用上述变化MooTools的类和这些类:
在日志中富,我可以看到酒吧的getter和setter。在baz的日志中,我可以看到quux的getter和setter,但我也想看到来自父级的getter和setter。再说一次,如果我能够实现这一点,它将为我节省很多时间来转换此代码。
你能解释一下你的用例吗?有什么可能的好处是没有创建 - 自动 - 你的原型映射到特定属性的函数?可能Class.Mutators是去这里的地方,你可以声明哪些变量应该接收一个getter/setter。 – 2012-03-08 16:21:18
基本上,我正在使用一些现有的代码,它具有__get__XXX和__set__XXX类型的函数,而不是在每个构造函数中添加__defineGetter__和__defineSetter__,我想改变MooTools为我创建这些代码。我的尝试有点奏效,但生成的基类getter/setters不可用于子类。 – brandon 2012-03-08 16:30:33