gpt4 book ai didi

javascript - 私有(private)函数和变量 ExtJs4?

转载 作者:可可西里 更新时间:2023-11-01 02:19:07 24 4
gpt4 key购买 nike

在我当前的项目中,我使用的是 ExtJs3.3。
我创建了许多具有私有(private)变量和函数的类。例如:

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 中定义私有(private)变量和函数,就像我在 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);
};

最佳答案

我不太喜欢像这样强制执行私有(private)变量,但当然可以这样做。只需在构造函数/initComponent 函数中为变量设置一个访问函数(闭包):

constructor: function(config) {
var bar = 4;
this.callParent(arguments);

this.getBar = function() {
return bar;
}
},...

关于javascript - 私有(private)函数和变量 ExtJs4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5985528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com