将ExtJS成员变量设为私有

时间:2018-06-12 08:29:12

标签: javascript extjs

Ext.define("rgpd.user.Profile", {

    config: {
        id: -1,
        role: 0,
        token: '',
        corps_metier: [],
    },

    constructor: function(config) {
        this.initConfig(config);
        this.callParent(arguments);
    }
});

我有这个类定义。我需要对此进行全局访问以及对象值​​(使用getter和setter),但是必须从控制台无法访问成员变量(id,token,role等)。我尝试使用private property,但它没有工作

编辑:

来自给出的例子

Ext.application({ name : 'Fiddle',

launch : function() {
    Ext.Msg.alert('Fiddle', 'Welcome to Sencha Fiddle!');
}

});

Ext.define('MyWindow', (function (){
    var isWindow = true;

    var isPrivateProp = true;



   return {
       isWindow: isWindow
   };
})());

var myWindow = new MyWindow();
console.log('object: ', MyWindow);
console.log('isWindow: ', myWindow.isWindow);
console.log('isPrivateProp: ', myWindow.isPrivateProp);

myWindow.isPrivateProp = false;
console.log('isPrivateProp: ', myWindow.isPrivateProp);

如果我这样做,则isPrivateProp值将重置为false。我希望只使用我的getter函数访问该属性,我希望能够仅使用我的setter来更改属性值

1 个答案:

答案 0 :(得分:0)

一个模式的基本示例,可以使用ExtJs来拥有私有成员:

Ext.application({
    name : 'Fiddle',

    launch : function() {
        Ext.Msg.alert('Fiddle', 'Welcome to Sencha Fiddle!');
    }
});


    Ext.define('MyWindow', (function (){
        var isWindow = true;

        var isPrivateProp = true;



       return {
           isWindow: function () { return isWindow }
       };
    })());

    var myWindow = new MyWindow();
    console.log('object: ', MyWindow);
    console.log('isWindow: ', myWindow.isWindow);
    console.log('isPrivateProp: ', myWindow.isPrivateProp);

来源: http://flexblog.faratasystems.com/index.php/private-methods-in-ext-js/

编辑: 转到https://fiddle.sencha.com/#view/editor

粘贴此代码观察控制台:

<FlatList 
    contentContainerStyle={customers.length === 0 && styles.centerEmptySet}
    data={customers}
    renderItem={({ item, index }) => (
        /// Your item here
    )}
    keyExtractor={(item, index) => {
        return String(index);
    }}
    ListEmptyComponent={<EmptySetCustomer />}
/>