[size=medium]First off, the ability to override via constructor was added in a later version of Ext than initComponent , so all code of a certain age would have to use initComponent. These days, you would still override initComponent if you want to do anything after the base class initComponent is called (constructor would be too early for this), but before the component is rendered. In many cases (like the most common, setting up configs), it does not practically matter either way and most people do whatever is most convenient. However, there are some cases where it matters.
基本知识:object没有prototype;但object有 constructor;constructor是function,所以constructor有prototype。那么原型继承的核心是什么呢?就 是把object的constructor的prototype的属性复制到了此object上。
当然,实际情况要复杂得多,这里提到这些,是因为和Ext的一个方法有关:Ext.extend(parent, config);
其中值得关注的是config。例如这么写:
Ext.ns('Demo','Demo.Configuration');
Demo.Configuration.Sample1 = Ext.extend(Ext.Component, {
name : '李东东',
otherConfig : {}
initComponent : function() {
otherConfig = otherConfig || {sex: 'female'};
}
});
上面的name和otherConfig属性,在new完第一个Demo.Configuration.Sample1对象之后,就会出现在 Demo.Configuration.Sample1.constructor.prototype的属性之中。也就是说,在new 完第一个对象之后,再new其他的对象时,将会在初始时就自动带了和第一个对象一模一样的属性名值对,这个例子里是{sex : 'female'},注意是在最初始的状态就是这个值,而不再是想当然的到initComponent中才改变的{}了。例子中给otherConfig 赋值是写死的,但实际情况很可能是根据不同的条件动态赋值,这时候这个特性如果不留意,就会很坑人。
转载http://www.cnblogs.com/damnedmoon/archive/2010/05/25/1743706.html
分享到:
相关推荐
在EXT中集成FCKeditor,可以为EXT应用程序提供一个强大的文本编辑功能。 1. **EXT与FCKeditor的结合** 在EXT应用中,通常会遇到需要用户输入大量文本的情况,如发布文章或编辑内容。FCKeditor的引入解决了这个问题...
在示例中,可以看到`MyTabsUi`组件被扩展自`Ext.TabPanel`类,并在`initComponent`函数中定义了组件的属性和行为。 4. **创建DOM元素作为组件容器**:在HTML文档的`<body>`部分,需要创建一个与`renderTo`属性匹配...
在EXT JS这个强大的JavaScript框架中,"继承"和"重写"是两个核心概念,它们在构建可复用和模块化的应用程序中起着至关重要的作用。EXT JS采用面向对象的编程方式,允许开发者通过继承机制来扩展类的功能,同时通过...
例如,`Ext.Component`是所有UI组件的基类,它的`initComponent`方法是初始化组件的关键步骤,而`render`方法负责将组件渲染到页面上。开发者可以通过扩展或配置这些基础类来创建自定义组件。 标签“源码”意味着...
在EXT.js中,方法重写是一种常见的实践,允许开发者扩展或修改框架的内置功能,以满足特定项目的需求。 在EXT.js中,方法重写主要通过以下两种方式实现: 1. **Override(覆盖)**:这是EXT.js提供的一种机制,...
`initComponent` 是EXT JS组件生命周期中的一个重要函数,它在组件实例化时被调用,用于完成组件的基本配置和初始化。当需要自定义组件时,可以重载这个函数,以便在其中添加自定义的逻辑。 示例代码: ```...
在Ext JS中,`portal.js`可能包含了对`Ext.layout.Portal`类的扩展或实现,该类负责管理Portlet(即可拖动的小组件)的位置和排列。拖拽时记录位置的功能使得用户可以个性化配置他们的仪表板,保存后,这些配置信息...
本文将详细探讨如何在ExtJS中实现一个窗口(`Ext.window`)从右下角动态弹出并隐藏的功能,类似于即时通讯软件(如MSN)中的登录提醒。 #### 二、关键技术点 ##### 1. **自定义窗口类** 为了实现上述需求,首先...
在EXTJS中,类通常通过`Ext.extend()`方法来定义,它创建了一个新的类,并继承自指定的父类。例如: ```javascript Ext.extend(ChildClass, ParentClass, { // 子类的方法和属性 }); ``` 这里的`ChildClass`是新...
在Ext JS框架中,开发人员经常遇到需要在页面中实现各种交互设计,其中包括弹出窗口的使用。然而,有些情况下,弹出窗口可能并不符合用户的使用习惯或设计美学,因此寻找替代方案变得必要。本文将探讨如何在Ext环境...
1.2.4 在javascript中使用json / 4 1.2.5 在.net中使用json / 8 1.2.6 在java中使用json / 12 1.2.7 更多有关json的信息 / 15 1.3 ext js 4概述 / 15 1.4 ext js的开发工具的获取、安装与配置介绍 / 18 1.4.1...
EXT dojochina是一个关于JavaScript库EXTJS的讨论社区,EXTJS是一个强大的前端开发框架,...在EXT dojochina社区中,开发者们分享了大量关于EXTJS类继承的实践经验和技巧,帮助彼此提升技能,共同推进EXTJS技术的发展。
2. 在`initComponent`方法中,组件遍历`tabItems`数组,为每个标签页创建一个“假”的容器(container),这个容器仅包含标签页的基础配置,而实际的组件或数据尚未加载。这些“假”容器被添加到`items`数组中,然后...
在描述中提到的“带时间选择的日期控件”,通常指的是`Ext.picker.Date`控件的扩展,这个控件不仅允许用户选择日期,还提供了选择具体时间的能力。 要创建这样一个控件,我们首先需要引入ExtJs4.1库,并定义一个新...
关于这个原因有很多种,我只说下我遇到的 我这样 写Store来复用的 代码如下: DocStore = Ext.extend(Ext.data.Store,{ initComponent:function(){ this.proxy = new Ext.data.HttpProxy({url:this.url}); this....
在Ext JS这个强大的JavaScript框架中,Panel是一种常用的组件,用于构建复杂的用户界面。Panel提供了丰富的功能,包括布局管理、工具栏、标题、可配置性等。然而,有时我们需要对Panel进行自定义,例如添加或修改...
从给定的文件信息来看,我们正在探讨的是一个名为`Ext.form.ChangeField`的自定义控件类,它继承自`Ext.form.TextField`,旨在提供一种机制来改变字段类型,如数字框、文本框、日期框和下拉框。下面我们将深入解析这...
在本例中,我们将重点介绍如何在TabPanel中的GridPanel(表格面板)中根据不同条件动态改变行的背景颜色。 #### 三、实现步骤 ##### 1. 在样式文件中添加样式 首先,我们需要定义CSS样式规则来指定不同数值对应的...
在Ext JS框架中,Modern工具包提供了一套现代化的组件,用于构建响应式、触摸友好的用户界面。本文将深入探讨如何将“monthyear”选择器添加到Modern工具包的日期选择器中,以增强用户体验并提高应用的交互性。 ...