Mootools 自动获取/设置器

Mootools 自动获取/设置器,mootools,Mootools,我正在使用mootools 1.4.3进行基本类继承。我实际上是在转换来自不同类库的一些代码。另一个类库将基于预定义的函数名模板动态创建getter和setter(成员函数_get_xxx将生成xxx的getter)。我想用mootools做一些类似的事情。我对Javascript并不陌生,但我对更高级的概念有些不熟悉 我已经让它部分工作了。在定义类对象的代码中,我通过类参数循环,并相应地添加defineGetter或defineGetter 这非常有效,它正确地创建了getter和sette

我正在使用mootools 1.4.3进行基本类继承。我实际上是在转换来自不同类库的一些代码。另一个类库将基于预定义的函数名模板动态创建getter和setter(成员函数_get_xxx将生成xxx的getter)。我想用mootools做一些类似的事情。我对Javascript并不陌生,但我对更高级的概念有些不熟悉

我已经让它部分工作了。在定义类对象的代码中,我通过类参数循环,并相应地添加defineGetterdefineGetter

这非常有效,它正确地创建了getter和setter。当我创建一个子类时,它失败了。这些动态getter/setter不会传播到子类。我不确定这是否可能,如果可能,如何做到。使用对mootools类和这些类的上述更改:


在foo的日志中,我可以看到bar的getter和setter。在baz的日志中,我可以看到qux的getter和setter,但我也希望看到父级的getter和setter。同样,如果我能让它工作,它将节省我转换代码的大量时间。

对。我想我知道你想做什么,但是

\uuuuu defineGetter\uuuuuu
\uuuuu defineGetter\uuuuuuu
已弃用,不能跨浏览器:

扩展对象时,保护和代理对这些属性的直接访问将不起作用,因为访问新对象属性的setter/getter不会转到您正在侦听的父对象(原型对象)

您可以尝试查看
扩展
参数。设置新类时,从新的params对象查找原型链上一直存在的函数,如果找到匹配项,还应将setter/getter应用于新对象。没那么容易

我会说,可能在:
newClass.prototype.parent=parent您应该能够检查getter/setter是否可用,并附加侦听器。您可能希望以某种方式保存引用,除非此时要检查所有类属性


或者,您可以重构初始化类mutator w/o,并将您的东西附加到类型创建中,尽管原始对象可能不可用

你能解释一下你的用例吗?在原型上自动创建映射到特定属性的函数有什么可能的好处?可能是类。Mutators是一个可以在这里声明哪些变量应该接收getter/setter的地方。基本上,我正在使用一些现有的代码,这些代码具有get_uxxx和_set_XXX类型的函数,而不是在每个构造函数中添加u defineGetter和defineGetter,我想修改MooTools来为我创建它们。我的尝试有些奏效,但生成的基类getter/setter对子类不可用。