从这个访问静态?

Access statics from this?

我在 ExtJS 5.1 中有以下 class:

Ext.define('Web.view.guard.apps.conexao.Conexao', {
    extend: 'Web.view.guard.apps.App',

    width: 400,
    height: 600,

    statics: {
        title: 'Conexão',
        icon: 'https://upload.wikimedia.org/wikipedia/commons/a/ac/Approve_icon.svg'
    },
});

我想从实例上下文访问静态属性,例如 title = this.statics.title 或类似的东西,从控制器或视图本身,但我在文档中找不到方法。

我通过 Google 找到了对方法 statics() 的引用,但它不起作用,this.statics().title returns null,虽然 statics() 方法确实存在。

怎么可能?

简单的方法是

Web.view.guard.apps.conexao.Conexao.title

但是this.self是对Web.view.guard.apps.conexao.Conexao的引用,所以可以使用this.self.title。参见 http://docs.sencha.com/extjs/5.1/5.1.1-apidocs/#!/api/Ext.Base-property-self and https://fiddle.sencha.com/#fiddle/na0

Ext.define('Web.view.guard.apps.conexao.Conexao', {
    extend: 'Web.view.guard.apps.App',

    width: 400,
    height: 600,

    statics: {
        title: 'Conexão',
        icon: 'https://upload.wikimedia.org/wikipedia/commons/a/ac/Approve_icon.svg'
    },

    myInstanceMethod: function() {
        console.log(this.self.title); 
    }
});
var conn = new Web.view.guard.apps.conexao.Conexao();
conn.myInstanceMethod();  
// 'Conexão' 
// 'https://upload.wikimedia.org/wikipedia/commons/a/ac/Approve_icon.svg'

如果您希望子类可以访问它,请务必使用 inheritableStatics: {}