在我目前的项目中,我使用的是ExtJs3.3。
我创建了许多具有私有变量和函数的类。对于如:私有函数和变量ExtJs4?
MyPanel = function(config){
config = config || {};
var bar = 'bar';//private variable
function getBar(){//public function
return bar;
}
function foo(){
//private function
}
Ext.apply(config, {
title: 'Panel',
layout: 'border',
id: 'myPanel',
closable: 'true',
items: []
});
MyPanel.superclass.constructor.call(this, config);
};
Ext.extend(MyPanel , Ext.Panel, {
bar: getBar
});
Ext.reg('MyPanel', MyPanel);
据我所知,在ExtJs4做事的新方法是使用Ext.define
方法。所以作为我上面这段代码会是这个样子:
Ext.define('MyPanel', {
extend: 'Ext.panel.Panel',
title: 'Panel',
layout: 'border',
closable: true,
constructor: function(config) {
this.callParent(arguments);
},
});
所以我想知道什么是我该怎么定义ExtJs4私有变量和函数类似于我在ExtJs3用同样的方式?
换句话说,我知道Ext.define
方法将负责定义,扩展和注册我的新类,但是我应该在哪里声明不是类本身的属性,而是类需要的javascript var
。
MyPanel = function(config){
//In my Ext3.3 examples I was able to declare any javascript functions and vars here.
//In what way should I accomplish this in ExtJs4.
var store = new Ext.data.Store();
function foo(){
}
MyPanel.superclass.constructor.call(this, config);
};
你能在这个@Rob扩大?我在[Sencha论坛](http://www.sencha.com/forum/showthread.php?245130-Understanding-Ext-JS-4)没有得到很多支持。我希望能找到类似于我的实现的东西(请参阅2012-05-31发布的问题更新) - > http://stackoverflow.com/questions/9104387/extjs-javascript-module-design-pattern-best-practices – blong 2012-10-08 20:21:31
嗨,我同意下面的评论,使用配置对象将是你想要什么时使用ExtJS 4或Sencha Touch 2.该配置会自动创建内部变量和getter和setter。我称他们为“内部变量”,因为他们不完全是“私人的”。在对象中挖掘时,您将能够更改它们,但您必须付出努力:)在创建任何复杂应用程序时,我强烈建议使用Sencha MVC结构,而不是手动定义来维护可用性。祝你好运 – 2012-10-09 08:26:36
这样的事情是什么:http://stackoverflow.com/a/6023603/320399。我试图修改'Ext.define'来让我在实例和实例独有的私有成员变量之间共享私有函数。 – blong 2012-10-09 14:59:22