ExtJS学习-----------Ext.Object,ExtJS对javascript中的Object的扩展

关于ExtJS对javascript中的Object的扩展,可以参考其帮助文档,文档下载地址:http://download.csdn.net/detail/z1137730824/7748893

下面对其中的方法进行介绍:

(1)chain,把当前传入的对象当成新创建对象的原型。

chainObject object )

使用给定对象作为原生链返回一个新对象。

Parameters

  • object : Object

    创建新对象的原生链。

实例:

var obj={
		name:'张三',
		age:20
	}
	var result=Ext.Object.chain(obj);
	alert(result.name);//会返回张三
	alert(result.age);//会返回20
	alert(result.hasOwnProperty('name'));//会返回false

(2)each

eachObject object, Function fn,
[Object scope] )

迭代一个对象,在每个迭代上调用给定的回调函数 在回调函数中返回 false 可以停止迭代. 示例:

var person = {
    name: ‘Jacky‘
    hairColor: ‘black‘
    loves: [‘food‘, ‘sleeping‘, ‘wife‘]
};

Ext.Object.each(person, function(key, value, myself) {
    console.log(key + ":" + value);//在浏览器控制台中打印person中的属性和值

    if (key === ‘hairColor‘) {
        return false; // 停止迭代
    }
});

Parameters

  • object : Object

    要迭代的对象

  • fn : Function

    回调函数

    Parameters

  • scope : Object (optional)

    回调函数执行的 (this) 作用域

(3)fromQueryString

fromQueryStringString queryString,
[Boolean recursive] ) : Object

将查询字符串转换回对象。

不递归:

Ext.Object.fromQueryString("foo=1&bar=2"); // 返回 {foo: 1, bar: 2}
Ext.Object.fromQueryString("foo=&bar=2"); // 返回 {foo: null, bar: 2}
Ext.Object.fromQueryString("some%20price=%24300"); // 返回 {‘some price‘: ‘$300‘}
Ext.Object.fromQueryString("colors=red&colors=green&colors=blue"); // 返回 {colors: [‘red‘, ‘green‘, ‘blue‘]}

递归:

Ext.Object.fromQueryString(
    "username=Jacky&"+
    "dateOfBirth[day]=1&dateOfBirth[month]=2&dateOfBirth[year]=1911&"+
    "hobbies[0]=coding&hobbies[1]=eating&hobbies[2]=sleeping&"+
    "hobbies[3][0]=nested&hobbies[3][1]=stuff", true);

// 返回
{
    username: ‘Jacky‘,
    dateOfBirth: {
        day: ‘1‘,
        month: ‘2‘,
        year: ‘1911‘
    },
    hobbies: [‘coding‘, ‘eating‘, ‘sleeping‘, [‘nested‘, ‘stuff‘]]
}

Parameters

  • queryString : String

    要解码的查询字符串

  • recursive : Boolean (optional)

    是否递归的解码字符串,这种格式在 PHP / Ruby on Rails服务器中被类似地支持.

    Defaults to: false

Returns

(4)getKey

getKeyObject object, Object value )

根据指定的值,返回第一个匹配的key. 如果没有匹配的值,将返回null.

var person = {
    name: ‘Jacky‘,
    loves: ‘food‘
};

alert(Ext.Object.getKey(person, ‘food‘)); // 弹出警告 ‘loves‘

Parameters

(5)getKeys

getKeysObject object )
String[]

获取所有对象的key组成的数组

var values = Ext.Object.getKeys({
    name: ‘Jacky‘,
    loves: ‘food‘
}); // [‘name‘, ‘loves‘]

Parameters

Returns

  • String[]

    对象的key组成的数组

(6)getSize

getSizeObject object )
Number

获取此对象的所有自有属性的数目

var size = Ext.Object.getSize({
    name: ‘Jacky‘,
    loves: ‘food‘
}); // size 等于 2

Parameters

Returns

(7)getValues

getValuesObject object )
Array

获取给定对象所有的值组成的数组。

var values = Ext.Object.getValues({
    name: ‘Jacky‘,
    loves: ‘food‘
}); // [‘Jacky‘, ‘food‘]

Parameters

Returns

  • Array

    对象的值组成的数组

(8)merge

mergeObject destination, Object...
object ) : Object

递归的合并任意数目的对象,但是不引用他们或他们的子对象。

var extjs = {
    companyName: ‘Ext JS‘,
    products: [‘Ext JS‘, ‘Ext GWT‘, ‘Ext Designer‘],
    isSuperCool: true,
    office: {
        size: 2000,
        location: ‘Palo Alto‘,
        isFun: true
    }
};

var newStuff = {
    companyName: ‘Sencha Inc.‘,
    products: [‘Ext JS‘, ‘Ext GWT‘, ‘Ext Designer‘, ‘Sencha Touch‘, ‘Sencha Animator‘],
    office: {
        size: 40000,
        location: ‘Redwood City‘
    }
};

var sencha = Ext.Object.merge(extjs, newStuff);

// 此时extjs和sencha等于
{
    companyName: ‘Sencha Inc.‘,
    products: [‘Ext JS‘, ‘Ext GWT‘, ‘Ext Designer‘, ‘Sencha Touch‘, ‘Sencha Animator‘],
    isSuperCool: true,
    office: {
        size: 40000,
        location: ‘Redwood City‘,
        isFun: true
    }
}

Parameters

  • destination : Object

    所有的对象子序列将被合并到此目标对象

  • object : Object...

    将要被合并的任意数目对象

Returns

  • Object

    合并所有给定的对象到目标对象

(9)toQueryObjects

toQueryObjectsString name, Object/Array value,
[Boolean recursive] ) : Array

将一个name - value对转换为一个对象数组,支持内部结构的转换,对构造查询字符串非常有用。
示例:

var objects = Ext.Object.toQueryObjects(‘hobbies‘, [‘reading‘, ‘cooking‘, ‘swimming‘]);

// objects此时等于:
[
    { name: ‘hobbies‘, value: ‘reading‘ },
    { name: ‘hobbies‘, value: ‘cooking‘ },
    { name: ‘hobbies‘, value: ‘swimming‘ },
];

var objects = Ext.Object.toQueryObjects(‘dateOfBirth‘, {
    day: 3,
    month: 8,
    year: 1987,
    extra: {
        hour: 4
        minute: 30
    }
}, true); // 递归

// objects此时等于:
[
    { name: ‘dateOfBirth[day]‘, value: 3 },
    { name: ‘dateOfBirth[month]‘, value: 8 },
    { name: ‘dateOfBirth[year]‘, value: 1987 },
    { name: ‘dateOfBirth[extra][hour]‘, value: 4 },
    { name: ‘dateOfBirth[extra][minute]‘, value: 30 },
];

Parameters

  • name : String

  • value : Object/Array
  • recursive : Boolean (optional)

    为true则递归遍历对象

    Defaults to: false

Returns

(10)toQueryString

toQueryStringObject object,
[Boolean recursive] ) : String

将一个对象转换成编码的查询字符串

不递归:

Ext.Object.toQueryString({foo: 1, bar: 2}); // 返回 "foo=1&bar=2"
Ext.Object.toQueryString({foo: null, bar: 2}); // 返回 "foo=&bar=2"
Ext.Object.toQueryString({‘some price‘: ‘$300‘}); // 返回 "some%20price=%24300"
Ext.Object.toQueryString({date: new Date(2011, 0, 1)}); // 返回 "date=%222011-01-01T00%3A00%3A00%22"
Ext.Object.toQueryString({colors: [‘red‘, ‘green‘, ‘blue‘]}); // 返回 "colors=red&colors=green&colors=blue"

递归:

Ext.Object.toQueryString({
    username: ‘Jacky‘,
    dateOfBirth: {
        day: 1,
        month: 2,
        year: 1911
    },
    hobbies: [‘coding‘, ‘eating‘, ‘sleeping‘, [‘nested‘, ‘stuff‘]]
}, true); // 返回如下字符串(换行和url-decoded是为了便于阅读的目的):
// username=Jacky
//    &dateOfBirth[day]=1&dateOfBirth[month]=2&dateOfBirth[year]=1911
//    &hobbies[0]=coding&hobbies[1]=eating&hobbies[2]=sleeping&hobbies[3][0]=nested&hobbies[3][1]=stuff

Parameters

  • object : Object

    要编码的对象

  • recursive : Boolean (optional)

    是否递归的翻译对象,这种格式在 PHP / Ruby on Rails服务器中被类似地支持.

    Defaults to: false

Returns

Ext.Object

view sourc

时间: 2024-08-03 07:08:44

ExtJS学习-----------Ext.Object,ExtJS对javascript中的Object的扩展的相关文章

ExtJS学习-----------Ext.Array,ExtJS对javascript中的Array的扩展

关于ExtJS对javascript中的Array的扩展.能够參考其帮助文档,文档下载地址:http://download.csdn.net/detail/z1137730824/7748893 因为Array中的方法过多.将当中的部分方法设计实例进行学习.实例地址:http://blog.csdn.net/z1137730824/article/details/38797257 (1)Ext.Array中的方法 clean( Array array ) : Array 过滤掉数组里的空值,空值

ExtJS学习-----------Ext.String,ExtJS对javascript中的String的扩展

关于ExtJS对javascript中的String的扩展,能够參考其帮助文档,文档下载地址:http://download.csdn.net/detail/z1137730824/7748893 以下对当中的部分方法进行介绍: (1)capitalize capitalize( String string ) : String 返回一个字符串.该字符串中第一个字母为大写字母 Parameters string : String 要转换的字符串 Returns String 转换后的字符串 (2

ExtJS学习-----------Ext.Number,ExtJS对javascript中的Number的扩展

关于ExtJS对javascript中的Number的扩展,可以参考其帮助文档,文档下载地址:http://download.csdn.net/detail/z1137730824/7748893 下面对其中的部分方法进行介绍: (1)constrain constrain( Number number, Number min, Number max ) : Number 检查给定的数值是否在约束的范围内. If the number is already within the 如果再范围内就返

ExtJS学习------Ext.define的继承extend,用javascript实现类似Ext的继承

(1)Ext.define的继承extend 具体实例: Ext.onReady(function(){ //Sup Class 父类 Ext.define('Person',{ config:{ name:'bjsxt' } , constructor:function(config){ var me = this ; me.initConfig(config); } }); //Sub Class 子类 Ext.define('Boy',{ //使用Ext的继承 extend:'Person

ExtjS学习--------Ext.define定义类

Ext类Class的配置项:(注:Extjs的 的中文版帮助文档下载地址:http://download.csdn.net/detail/z1137730824/7748893 ExtJS配置文件和示例的下载地址:http://download.csdn.net/detail/z1137730824/7754771) 语法: define( String className, Object data, Function createdFn ) 实例: Ext.onReady(function()

ExtJS学习-------Ext.define的别名和备用名,两种定义静态方法的方法,混入属性和其他属性

(1)Ext.define起别名和备用名 Ext.onReady(function(){ Ext.define('User',{ config:{ name:'张三', age:23 }, //使用别名 alias:'alias_user', //使用备用名 alternateClassName:'alternateClassName_user', constructor:function(config){//构造器 var me=this; me.initConfig(config); } }

ExtJs学习笔记(1)---ExtJs安装及其使用

从官网下载了ExtJs的3.2版本的SDK,包含了代码依赖的详细说明.文档.范例和其他文件.其中,adapter和resources文件是Ext正常运行所必须的,其他的仅在开发过程中使用到. Adapter:支持把Ext和其他代码库一同使用的文件 build:用于自定义构建ext-all.js的文件 docs:文档中心(仅当运行在服务器上时能够正常访问) examples:大量令人印象深刻富有洞察力的范例 resources:Ext依赖的文件,例如CSS和图片 source:ext的所有代码 在

Javascript中的Object类

Object类是Javascript中最基本的类,用来创建普通对象,通常用这些对象存储数据. 1.Object对象 1.1.创建Object对象 创建Object对象有两种方式 第一种创建方式:new Object() var obj = new Object(); 第二种创建方式:{} var obj = {}; var obj2 = {"name":"tom","age":24}; 1.2.添加属性 obj.firstname = "

前端学习 第六弹: javascript中的函数与闭包

前端学习 第六弹:  javascript中的函数与闭包 当function里嵌套function时,内部的function可以访问外部function里的变量 function foo(x) {    var tmp = 3;    function bar(y) {        alert(x + y + (++tmp));    }    bar(10);}foo(2) 这时无论怎么运行输出的都是16,但这不是闭包 如果我们返回内部函数,内部function会close-over外部fu