enyo mixin:这是正确的用法吗?

时间:2013-04-19 20:57:02

标签: webos enyo

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

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

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

我的问题是,这样做有什么不妥吗?

2 个答案:

答案 0 :(得分:1)

如果你使用mixins扩展种类,这是一种更新的方法:

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

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

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

答案 1 :(得分:0)

如果有效,那就没错!但是,我不确定enyo.mixin有多深,所以你有时候可能得不到你所期望的一切。