我遇到了dojo方面的问题以及它与继承的行为方式。
我有一个名为child1的类和另一个名为child2的类。 这两个类都继承自父。
Child1:
return declare("child1", [parent], ...
CHILD2:
return declare("child2", [parent], ...
Child1和Child2的实现非常不同。 Parent有一个child1需要方面的方法:
this.own(aspect.before(this, "_onChange", lang.hitch(this, "_onRowSelected"), true));
在调用child1之前,child2的一切正常。
此时,只要从Parent调用_onChange
方法,就会运行函数child1._onRowSelected
....无论调用源自何处。
我认为该方面只涉及在child1中创建方面调用的对象,并且不会影响child2。
我唯一可以想到的是,它看起来像是在HTML模板中完成了child1和child2的实例化。
答案 0 :(得分:1)
如果使用继承,为什么要使用aspect
?
在这种情况下没有必要。
在Child1
中,只需创建一个方法_onChange
,如下所示:
_onChange: function() {
this._onRowSelected();
this.inherited(arguments);
}
无需aspect