我有以下代码,如下所示:
var shared = {
create: function(){
//do stuff on create
}
}
enyo.kind(enyo.mixin({
name: "CustomInput",
//properties unique to input.
kind: enyo.Input
},shared));
enyo.kind(enyo.mixin({
name: "CustomTextArea",
//properties unique to input.
kind: enyo.TextArea
},shared));
enyo.kind(enyo.mixin({
name: "CustomSelect",
//properties unique to input.
kind: enyo.Select
},shared));
我的同行告诉我,这是一种不正确的做事方式,可能会破坏某些东西,或者太混乱,因为他们从未见过以这种方式使用过混合物。
我的问题是,这样做有什么不妥吗?
答案 0 :(得分:1)
如果你使用mixins扩展种类,这是一种更新的方法:
enyo.createMixin({
name: 'MyMixin',
mymethod: function() {
// do stuff
}
});
enyo.Control.extend({
mixins: ['MyMixin']
});
这将在实例化之前将其混合。 如果您希望在运行时添加属性,请使用mixin()函数。
答案 1 :(得分:0)
如果有效,那就没错!但是,我不确定enyo.mixin有多深,所以你有时候可能得不到你所期望的一切。