`

透析Extjs的Ext.js源码(一)对象属性的添加和设置

EXT 
阅读更多
/**  
 * 分析Ext.js  
 */  
  
/**  
 * 第一部分:对象属性的添加和设置  
 */  
Person = {   
    sex : 'woman'// 初始属性设置   
};   
  
Person.applay = function(source, copy, defaults) {   
    if (defaults) {   
        Person.applay(source, defaults)   
    }   
    if (source && copy && typeof copy == 'object') {   
        for (var p in copy) {   
            // alert(p);   
            // p是属性名,通过source[p] = copy[p];对source进行属性的添加和设置。   
            // 如果copy中的属性列表包含有defaults的属性,则source中采用的是copy中的属性和对应的值。   
            source[p] = copy[p];   
        }   
    }   
    return source;   
};   
  
/**  
 * 一、传递的是{}配置列表时  
 */  
// 1、不传defaults的情况   
Person.applay(Person, {   
    name : 'wujinli',   
    age : 26   
});   
// alert(Person.name);// 输出属性名为name的属性值,输出结果:wujinli,也可以用 alert(Person["name"])   
  
// 2、传defaults并且第二个参数的属性列表中不包含第三个参数的属性的情况   
Person.applay(Person, {   
    age : 26   
}, {   
    name : 'wujinli'  
});   
// alert(Person.name);// 输出属性名为name的属性值,输出结果:wujinli,也可以用 alert(Person["name"])   
  
// 3、传defaults并且第二个参数的属性列表中有包含第三个参数的属性的情况   
Person.applay(Person, {   
    name : '丫梨',   
    age : 26   
}, {   
    name : 'wujinli'  
});   
// alert(Person.name);// 输出属性名为name的属性值,输出结果:丫梨,也可以用 alert(Person["name"])   
  
/**  
 * 二、传递的是对象时  
 */  
Child = function() {   
    this.farther = "farther-name";   
    this.mother = "mother-name";   
};   
Person.applay(Person, new Child());   
// alert(Person.farther);// 输出属性名为farther的属性值,输出结果:farther-name  
分享到:
评论

相关推荐

    extjs中Ext.Panel和TreePanel 组件动态加载本地页面数据

    在EXTJS这个强大的JavaScript框架中,`Ext.Panel`和`TreePanel`是两个非常重要的组件,它们被广泛用于构建复杂的用户界面。这篇文章将探讨如何在这些组件中动态加载本地页面数据,以提升用户体验并实现灵活的数据...

    extjs-Ext.ux.form.LovCombo下拉框

    在EXTJS框架中,`Ext.ux.form.LovCombo`是一种自定义组件,它扩展了基本的`Ext.form.field.ComboBox`,提供了更丰富的功能,尤其是针对多选和联动选择的需求。这个组件通常用于创建具有“lov”(即“Look Up Value”...

    extjs4的Ext.frorm.Panel控件属性说明和表单控件说明

    主要用例子说明extjs4的form表单的运用,其中有表单属性说明,表单控件运用说明如: title:'表单', //表单标题 bodyStyle:'padding:5 5 5 5', //表单边距 height:120, //表单高度 width:200, //表单宽度 ...

    Extjs4.X下comboboxTree下拉树型菜单,完美支持多选、单选,绝对好用

    在ExtJS 4.x框架中,ComboboxTree是一种特殊的组件,它将传统的下拉框与树形结构结合在一起,提供了一种更为灵活的用户输入方式。这种组件在数据选择上非常实用,尤其当数据层级关系复杂时,可以方便地进行多选或...

    extjs grid.panel 项目 源码

    ExtJS 是一个强大的JavaScript应用程序框架,专用于构建富客户端Web应用。它提供了丰富的组件库,包括Grid Panel,它是展示和操作表格数据的核心组件。在"extjs grid.panel 项目 源码"中,我们可以深入理解如何利用...

    EXTJS3 Ext.PagingToolbar() 快捷键应用

    `Ext.PagingToolbar`通常位于EXTJS的GridPanel下方,包含一系列的按钮和输入框,如“第一页”,“上一页”,“下一页”,“最后一页”以及当前页数和总页数的显示。用户可以通过点击这些按钮进行翻页,或者直接在...

    关于extjs ext.tree

    ExtJS 是一个流行的JavaScript库,专门用于构建富客户端应用程序,特别是那些基于Web的桌面级应用。它提供了大量的组件,如表格、树形视图、窗口、表单等,用于创建功能丰富的用户界面。在本篇中,我们将深入探讨...

    Ext Extjs 禁止文本和日期编辑

    在Ext JS这个强大的JavaScript框架中,开发者经常使用各种组件来构建富客户端应用,其中包括TextField(文本字段)和DatePicker(日期选择器)。有时,我们可能需要根据应用需求在运行时禁用这些组件的编辑功能,...

    ExtJs charts.swf源码

    ExtJs图表库是基于Flash的charts.swf组件,主要用于在Web应用中生成各种动态和交互式的图表。这个组件在ExtJs 2.6和2.8版本中被广泛使用,为开发者提供了丰富的可视化数据呈现方式。本文将深入探讨ExtJs charts.swf...

    ext JS 源码和学习资料

    EXT JS 是一种基于JavaScript的富客户端应用框架,主要用于构建交互性强、用户体验良好的Web应用程序。它提供了大量的组件和功能,使得开发者能够轻松创建复杂的用户界面。本压缩包包含EXT JS的多个版本源码,如ext-...

    Ext.Ajax.request2.x实现同步请求

    在EXTJS中,`Ext.Ajax`对象提供了丰富的配置项和方法,如`params`用于传递请求参数,`headers`用于设置HTTP头,`timeout`定义请求超时时间等。同时,`Ext.Ajax`还支持全局配置,通过`Ext.Ajax.defaults`可以设置默认...

    Extjs3.x入门学习

    在ExtJS中,处理日期通常涉及到`Ext.Date`对象,它提供了一系列的日期格式化和解析函数。了解日期格式的设置和使用能帮助我们更好地展示和处理日期数据。 6. **Windows使用**: Windows是ExtJS中的弹出式窗口组件...

    Ext.ux.SwfUploadPanel.js

    `Ext.ux.SwfUploadPanel.js`是这样一个基于ExtJS和SwfUpload技术的插件,它实现了多文件上传的功能。这篇文章将深入探讨这个插件的工作原理、主要特点以及如何在实际项目中应用。 首先,`ExtJS`(全称为EXT ...

    ExtJs 带清空功能的日期组件

    创建一个新的类,继承自Ext.form.field.Date,然后添加我们需要的清空功能。可以通过`Ext.extend()`方法实现这一点。 ```javascript Ext.define('MyApp.form.field.ClearableDate', { extend: 'Ext.form.field....

    extjs4.x tabpanel 动态加载panel和html例子

    EXTJS是一个基于JavaScript的富客户端框架,它提供了丰富的组件库和数据管理模型,用于构建复杂的Web应用程序。`tabpanel`是其中的一个重要组件,它继承自`container`,可以容纳多个`panel`,每个`panel`对应一个...

    ExtJS 多文件上传 UploadDialog For ExtJS3.x

    本篇文章将详细介绍如何针对ExtJS 3.x版本定制和优化一个名为`UploadDialog`的多文件上传组件。 #### 关键技术点 1. **ExtJS 3.x兼容性** - 在ExtJS 2.x版本中实现的多文件上传功能通常无法直接应用于3.x版本。 ...

    Ext.get与Ext.fly 的区别

    在EXTJS这个强大的JavaScript框架中,`Ext.get`和`Ext.fly`是两个非常重要的方法,它们都用于操作DOM元素,但它们之间存在着微妙的差异。了解这些差异对于优化代码性能和理解EXTJS的工作机制至关重要。 首先,`Ext....

    extjs3.x 官方示例以及chm版api

    `ext-3.4.0` 文件可能是ExtJS 3.4.0版本的源码或者库文件,包含所有必要的JavaScript和CSS资源,可以直接在项目中引用。 综上所述,"extjs3.x 官方示例以及chm版api"为开发者提供了一套完整的ExtJS 3.x 学习和开发...

    ExtJs3.* 分页树 Ext.ux.tree.PagingTreeLoader

    ExtJs 3.x 分页树(Ext.ux.tree.PagingTreeLoader)是一个强大的扩展,它在处理大量数据时尤其有用,因为树形结构通常需要显示大量的层级和节点。这个组件引入了分页功能,允许用户逐步加载树节点,而不是一次性加载...

    ExtJs的Ext.Ajax.request实现waitMsg等待提示效果

    ExtJs提供了Ext.Ajax.request方法来进行Ajax请求,但默认情况下,该方法不支持waitMsg属性,不像fp.form.submit方法提供了waitTitle和waitMsg属性来实现等待提示。为了解决这一限制,我们可以采用Ext.MessageBox的...

Global site tag (gtag.js) - Google Analytics