observer / listener 模式
button 实现 observer 的接口,里面一个 event 数组,一个事件的 function 加入时,function 加入到这个事件的 listener 数组,button 发生事件时,通知事件 function 数组的所有成员,执行。
若事件正在发生的同时又对这个事件加入(或删除)了一个listener,( this.firing = true ),则 this.listeners = this.listeners.slice(0) copy 一个新的数组,然后操作 this.listeners,不干扰当前的 loop
button -> component -> observer
reference :
slice:
var a;
a = new Array("a","b","c","d","e");
document.write(a.slice(0,3) + "<br>");
document.write(a.slice(-3,4) + "<br>");
document.write(a.slice(0,-1) + "<br>");
document.write(a.slice(1) + "<br>");
document.write(a.slice(4,3));
var a;
a = new Array("a","b","c","d","e");
document.write(a.slice(0,3) + "<br>");
document.write(a.slice(-3,4) + "<br>");
document.write(a.slice(0,-1) + "<br>");
document.write(a.slice(1) + "<br>");
document.write(a.slice(4,3));
这个示例用到了数组(Array)对象的Slice(start,[end])方法,该方法返回一个新数组,包含了源函数从start到 end 所指定的元素,但是不包括end元素,比如a.slice(0,3);如果 start 为负,将它作为 length + start处理,此处 length 为数组的长度,比如a.slice(-3,4),相当于a.slice(2,4)。如果 end 为负,就将它作为 length + end 处理,此处 length 为数组的长度,比如a.slice(0,-1)。如果省略 end ,那么 slice 方法将一直复制到源数组结尾,比如a.slice(1)。如果 end 出现在 start 之前,不复制任何元素到新数组中,比如a.slice(4,3)。
splice:
splice():在数组的任意位置进行添加,删除或者替换元素,直接修改数组对象
细节:
splice()有三个参数或三个以上参数,前两个是必须的,后面参数是可选的
进行添加:splice(起始项,0,添加项)
进行删除:splice(起始项,要删除的项个数)
进行替换:splice(起始项,替换个数,替换项) 这个其实是添加删除的共同结果
代码:
var m=["am","bm"]
m.splice(1,0,"fm","sm");//在第一项后面添加fm和sm,返回am,fm,sm,bm
alert(m);
m.splice(2,1);//删除第二项后面一项(即第三项sm,返回am,fm,bm)
alert(m);
m.splice(2,1,"mm");//替换第二项后面一项(即第三项,返回am,fm,mm)
alert(m);
分享到:
相关推荐
EXTJS基于事件驱动,组件间的交互主要通过事件触发和监听来实现。开发者可以自定义事件,也可以利用内置的点击、改变、加载等事件来响应用户操作。 五、EXTJS 3.04 API 中文版API文档对于EXTJS的学习至关重要,它...
首先,EXTJS的事件机制基于观察者模式,即事件发布者(Publisher)发出事件,而事件订阅者(Subscriber)监听并响应这些事件。EventManager.js就是实现这一模式的关键,它提供了注册、触发和解绑事件的接口。 1. **...
Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,而ExtJS3则是一个用于构建富客户端JavaScript应用的库。本文将深入探讨如何使用Struts2和ExtJS3实现单文件和多文件的上传功能。 首先,我们...
理解这些布局模式可以帮助你构建出更灵活、适应不同屏幕尺寸的应用。 "23-Ext中的对话框.doc"文件讲解了对话框(Dialog)组件的使用,包括模态窗口和非模态窗口。对话框在Web应用中常用于弹出确认、提示或设置信息...
licensing@extjs.com http://extjs.com/license Open Source License Ext is licensed under the terms of the Open Source GPL 3.0 license. http://www.gnu.org/licenses/gpl.html There are several FLOSS ...
ExtJS 3是一款基于JavaScript的富客户端框架,用于构建功能丰富的、交互式的Web应用程序。在ExtJS 3中,多选下拉框(LovCombo)是一种复合组件,它结合了下拉列表和“爱好者选择”(LOV,Lookup Value)的功能,允许...
extjsapi,extjs文档,api手岫
体验例子见:http://extjs.com/deploy/dev/examples/form/file-upload.html 2、GMapPanel GMap扩展 体验例子见:http://extjs.com/deploy/dev/examples/window/gmap.html 3、XmlTreeLoader XML转换成Tree ...
1、开始使用extjs 2、组件的介绍以及应用 3、ExtJS的核心 该教程有相应的代码以供参考 <!--导入Ext3.2--> <link rel="stylesheet" type="text/css" href="extjs3.2/resources/css/ext-all.css" /> ...
这可能涉及到扩展ExtJS的现有类,例如`Ext.tree.TreePanel`,并添加新的行为、样式或事件处理器。 3. **工具集(Toolkits)**:ExtJS 3.0引入了工具集的概念,比如经典的Classic Toolkit和更加现代的Modern Toolkit...
在ExtJs中,事件处理是构建交互式用户界面的关键组成部分。下面将详细解释标题和描述中提到的ExtJs事件处理,以及与Ajax交互的相关知识。 1. **基本事件处理** - 在ExtJs中,可以使用`on`方法来监听DOM元素或Ext...
ExtJS是一个很不错的Ajax框架,可以用来开发带有华丽外观的富客户端应用,使得...要使用ExtJS,那么首先要得到ExtJS库文件,该框架是一个开源的,可以直接从官方网站下载,网址:http://extjs.com/products/extjs/download.php
Extjs4.2.1核心包,做学习测试用,拷贝这些文件就行了,如果拷贝完整的包,...<link rel="stylesheet" href="extjs/resources/css/ext-all.css" type="text/css" /> <script src="extjs/ext-all-debug.js"></script>
1. **事件监听与触发**:EXTJS中的每个组件都拥有自己的事件系统,可以通过`addListener`(或简写`on`)方法来监听事件,`fireEvent`方法来触发事件。例如: ```javascript var button = Ext.create('Ext.button....
在深入探讨事件处理和动态载入这两个主题之前,我们先简单了解一下ExtJS的基础。 ExtJS 提供了一个完整的框架,包括丰富的UI组件、数据绑定机制、布局管理以及强大的事件模型。这使得开发者能够创建功能丰富的Web...
对ExtJS的TabPanel加载带js的iframe页提供支持 extjs load once提供支持 extjs 面板间消息传递提供支持。。 <br>资源整理自extjs论坛,修正了里面的链接和异常,直接部署到extjs2.1的example底下就可以 ...
在Extjs中实现文件下载,通常会涉及到事件监听、Ajax请求以及浏览器的Blob对象和URL.createObjectURL方法。 1. **事件监听**:在Extjs中,我们可以在按钮或其他控件上设置监听器,当用户点击时触发相应的下载操作。...
7. **API文档**:EXTJS 6.2的API文档会详尽地列出所有可用的类、方法、属性和事件,帮助开发者快速理解和使用框架。 8. **主题与皮肤**:EXTJS支持自定义主题,6.2可能会提供新的预设主题或改进现有主题的定制选项...
ExtJS的MVC模式是其框架的核心特性之一,主要用于组织和管理复杂的用户界面代码,确保应用的可维护性和可扩展性。在深入讲解MVC模式之前,先了解一下ExtJS本身。ExtJS是一款基于JavaScript的开源UI库,它提供了一套...