借鉴Ext.apply实现对象的无限继承
url: http://ajaxbbs.net/blog/post/175/#entrymore
Ext-base.js开头有这样一个方法apply。
代码如下:
Ext.apply=function (C,D,B){
if(B){
Ext.apply(C,B);
}if(C&&D&&typeof D=="object"){
for(var A in D){
C[A]=D[A];
}
}
return C;
};
该段代码的作用是实现对象的继承。
参数意义:
如果只传入两个参数,则将C继承D的所有方法属性,如果定义了B则每次都先继承B的方法属性然后再继承D的方法属性,即B是默认继承对象。
代码内容不难理解,之后自己思虑写一个可以继承无限对象的方法,及可以传入n个对象,然后将所有对象的方法属性继承给第一个参数对象并返回该对象。花了几分钟时间写出了一个(代码没有做优化)。
代码如下:
<script type="text/javascript">
<!--
function apply(){
var l=arguments.length;
if(l<1) {
return null; //无参数
}
if(l>2){ //多于两个
apply(arguments[0],arguments[l-1]); //从最后一个开始继承
arguments.length=l-1; //去掉最后一个参数然后递归
apply(arguments);
}
//两个参数
if(arguments[0]&&arguments[1]&&typeof arguments[1]=="object"){
for(var a in arguments[1]){
arguments[0][a]=arguments[1][a];
}
}
return arguments[0];
};
var a=new Object();
a.a="xxx";
a.e="yyy";
a.f="zzz";
var b={xx:"aaaa",yy:"dsdfa",tt:"ddddd"};
var d={s1:"tesas",s2:"545465"};
var c=new Object();
var obj=apply(a,b,c,d);
var arr = new Array();
for(var i in obj){
arr.push(i + ":" + obj[i] + "\n");
}
alert(arr.join(''));
//-->
</script>
相关推荐
### Ext JS 4.1中的`Ext.apply`与`Ext.override` #### 一、Ext.apply详解 `Ext.apply`是Ext JS框架中的一个核心方法,主要用于对象的属性合并。此方法能够将一个或多个对象的属性复制到目标对象中,从而实现对象...
本文将详细解析如何利用`Ext.Ajax.request`实现同步请求,并探讨其背后的原理和注意事项。 首先,我们需要理解Ajax的本质,它是Asynchronous JavaScript and XML的缩写,虽然现在XML已不再是主要的数据交换格式,但...
在这个例子中,`Ext.get`和`Ext.fly`都实现了对元素的隐藏或显示操作。然而,`Ext.fly`并不会将`bar`元素的对象持久化在内存中,而`Ext.get`则会缓存`foo`元素的对象,以便于后续的操作。 综上所述,`Ext.get`和`...
这些文件可以帮助开发者理解并应用`Ext.ux.form.LovCombo`,通过查看源码学习如何初始化、配置以及处理相关事件。 综上所述,`Ext.ux.form.LovCombo`是EXTJS中用于创建具有多选功能和良好浏览器兼容性的下拉框组件...
在阅读《Ext_Core手册.pdf》时,可以深入研究EXTJS的核心概念和API,了解更多关于`Ext.get`和`Ext.fly`的底层实现以及它们在不同场景下的应用策略。同时,理解EXTJS中的`Element`类和DOM操作对于提升EXTJS应用的性能...
从`Ext.data.Store`中获取数据可以通过多种方式实现。最常见的方法是使用`getAt`方法结合`get`方法来获取特定记录中的数据。 ```javascript // 获取第0条记录的name值 var name = store.getAt(0).get('name'); // ...
9. `numberfield`:`Ext.form.NumberField`继承自`Ext.form.TextField`,专用于处理数字输入。它提供了额外的配置项,如允许小数、负数,设定最大最小值和精度,以及自定义小数分隔符。 10. `radio`:`Ext.form....
标题"Ext.Ajax.request跨域"指出我们将探讨如何使用ExtJS库中的Ajax模块进行跨域请求。Ext.Ajax.request是ExtJS提供的一种发起Ajax请求的方式,它允许开发者向服务器发送异步HTTP请求。然而,由于浏览器的同源策略...
org.restlet.ext.spring.jar
结合以上代码,你可以实现一个简单的`Ext.Window`并展示图片。在实际应用中,你可能还需要考虑其他因素,如图片加载失败的处理、响应式布局等。 此外,提供的`一个简单的Ext.Window中插入图片.doc`文件可能包含更...
在Ext.js中,`Ext.Store`是用来管理数据的类,它通常与各种UI组件(如Grid、ComboBox等)关联,用于存储和检索数据。然而,获取`Ext.Store`的方式并不像获取其他Ext组件那样直接,因为Store并不是一个具有可视界面的...
本压缩包包含两个PDF文档,分别是“Ext.JS6ByExample.pdf”和“Ext.JS6学习文档.pdf”,都是针对Ext.js 6版本的学习资料,对于想要深入理解并掌握Ext.js 6的开发者来说是宝贵的资源。 "Ext.JS6ByExample.pdf"很可能...
`Ext.ux.SwfUploadPanel.js`是这样一个基于ExtJS和SwfUpload技术的插件,它实现了多文件上传的功能。这篇文章将深入探讨这个插件的工作原理、主要特点以及如何在实际项目中应用。 首先,`ExtJS`(全称为EXT ...
Ext.js 是一个强大的JavaScript库,专门用于构建富客户端的Web应用程序。它提供了丰富的用户界面组件和数据绑定功能,使得开发者可以构建出具有桌面应用级别的交互式网页应用。本教程和API文档聚焦于Ext.js 3.0版本...
其中,我们可以看到Ext.Ajax可以实现动态与静态的方式提交到web服务器。从中可以看出,其实Ext框架可以非常方便的与现有网站集成。关于Ext.data.Store类,我们可以看出:该框架提供了客户端缓存的功能--这对于我们...
EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档...
运行Microsoft office时,vbe6ext.olb不能加载
8. **组合框模式**:`Ext.form.TextField`还可以扩展为`Ext.form.ComboBox`,实现下拉选择功能,这在需要用户从预定义选项中选择时非常有用。 在压缩包中的`Ext.form.TextField`文件夹,很可能是包含了一个或者多个...
### Ext.window从右下角弹出/隐藏:深入解析与实现 #### 一、概述 在Web应用开发中,为了提升用户体验,开发者经常会利用各种UI框架来实现丰富的交互效果。ExtJS作为一款成熟且功能强大的JavaScript框架,在这方面...