0

我有以下代码,如下所示:

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));

我的同行告诉我,这是一种不正确的做事方式,并且可能会破坏某些东西,或者太混乱,因为他们从未见过以这种方式使用 mixin。

我的问题是,以这种方式这样做有什么问题吗?

4

2 回答 2

1

如果您使用 mixins 扩展种类,这里有一种更新的方法:

enyo.createMixin({
    name: 'MyMixin',
    mymethod: function() {
        // do stuff
    }
});

enyo.Control.extend({
     mixins: ['MyMixin']
});

这将在实例化之前将其混合。如果您希望在运行时添加属性,请使用 mixin() 函数。

于 2013-06-21T01:08:13.453 回答
0

如果有效,那就没有错!但是,我不确定 enyo.mixin 的深度,所以有时您可能无法获得您期望的一切。

于 2013-04-20T16:04:26.067 回答