日期:2014-05-16  浏览次数:20564 次

extjs菜鸟,几个问题请教大虾们 - Web 开发 / Ajax
这是一段网上的代码
tabContent = function() {
this.openTab = function(node, event, panel) {
event.stopEvent();/**阻止默认响应*/
var n = main.getComponent(node.id);/**根据id获得组件*/
if (!n) {
var p = new panel();/**根据传入的panel是一个Ext类的子类,生成一个对象**/
p.id = node.id;/**这个面板的id和树节点的id一致**/
p.title = node.text;/**面板的title和树节点的text一致**/
n = main.add(p);
}
main.setActiveTab(n);/**main是tabContent类的对象*/

};

this.closeTab = function(panel, id) {
var o = (typeof panel == "string" ? panel : id || panel.id);
var tab = this.getComponent(o);
if (tab) {
this.remove(tab);
}
};

tabContent.superclass.constructor.call(this, {
/**id : 'main',这个id是一个组件的唯一标识,以后可以通过这个id值来访问这个组件,但是这里没什么用*/
region : 'center',
margins : '0 3 3 0',
resizeTabs : true,
minTabWidth : 135,
tabWidth : 135,
enableTabScroll : true,
activeTab : 0,
items : {
title : '系统介绍',
html : '<div style="position:absolute;top:60;left:120;"><img src="images/welcome.gif"/></div>'
}
});
}
Ext.extend(tabContent, Ext.TabPanel);

我想问的是
1、this.openTab 定义的是什么,是一个方法吗?
2、为什么我把this去掉后程序会报错,说对象不支持此属性或方法,这个this是什么作用啊?
3、Ext.extend(tabContent, Ext.TabPanel);这个应该是说tabContent继承自Ext.TabPanel吧,但为什么,我在帮助文档中发现的继承好像不是这样的啊,都是Ext.extend(SuperClass,SubClass)


------解决方案--------------------
this指的是当前的控件
这里的this指的是tabContent