在我目前的項目中,我使用的是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