【问题标题】:enyo mixin: Is this proper usage?enyo mixin:这是正确的用法吗?
【发布时间】:2013-04-19 20:57:01
【问题描述】:

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

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 而过于混乱。

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

【问题讨论】:

    标签: webos enyo


    【解决方案1】:

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

    enyo.createMixin({
        name: 'MyMixin',
        mymethod: function() {
            // do stuff
        }
    });
    
    enyo.Control.extend({
         mixins: ['MyMixin']
    });
    

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

    【讨论】:

    • “较新”是什么意思?从什么版本开始?
    【解决方案2】:

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

    【讨论】:

    • 根据他们的文档,这是我所知道的,右侧分配对象的属性将优先于左侧。因此,只要查看代码的人都明白这一点,我认为这永远不会成为问题。
    猜你喜欢
    • 1970-01-01
    • 2015-06-03
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多