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

关于ExtJS对javascript中的Object的扩展。能够參考其帮助文档,文档下载地址:

以下对当中的方法进行介绍:

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

 object )

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

Parameters 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

 fn, [ scope] )

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

    name: 'Jacky'
    hairColor: 'black'
    loves: ['food', 'sleeping', 'wife']
};

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

    if (key === 'hairColor') {
        return false; // 停止迭代
    }
});
Parameters object : 

要迭代的对象

fn : 

回调函数

Parameters key :  value :  object : 

对象本身

scope :  (optional)

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

(3)fromQueryString

 queryString, [ recursive] ) : 

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

不递归:

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

递归:

    "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 : 

要解码的查询字符串

recursive :  (optional)

是否递归的解码字符串,这样的格式在 PHP / Ruby on Railsserver中被类似地支持.

Defaults to: false

Returns (4)getKey

 value )

依据指定的值。返回第一个匹配的key. 假设没有匹配的值,将返回null.

    name: 'Jacky',
    loves: 'food'
};

alert((person, 'food')); // 弹出警告 'loves'
Parameters object :  value : 

要查找的值

(5)getKeys

 object ) : []

获取全部对象的key组成的数组

    name: 'Jacky',
    loves: 'food'
}); // ['name', 'loves']
Parameters object :  Returns []

对象的key组成的数组

(6)getSize

 object ) : 

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

    name: 'Jacky',
    loves: 'food'
}); // size 等于 2
Parameters object :  Returns

size

(7)getValues

 object ) : 

获取给定对象全部的值组成的数组。

    name: 'Jacky',
    loves: 'food'
}); // ['Jacky', 'food']
Parameters object :  Returns

对象的值组成的数组

(8)merge

... object ) : 

递归的合并随意数目的对象。可是不引用他们或他们的子对象。

    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 = (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 : ...

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

Returns

合并全部给定的对象到目标对象

(9)toQueryObjects

 value, [ recursive] ) : 

将一个name - value对转换为一个对象数组,支持内部结构的转换。对构造查询字符串很实用。

演示样例:


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

var objects = ('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 :  value : / recursive :  (optional)

为true则递归遍历对象

Defaults to: false

Returns (10)toQueryString

 object, [ recursive] ) : 

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

不递归:

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

递归:

    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 : 

要编码的对象

recursive :  (optional)

是否递归的翻译对象。这样的格式在 PHP / Ruby on Railsserver中被类似地支持.

Defaults to: false

Returns

queryString

view sourc

31人参与, 0条评论 登录后显示评论回复

你需要登录后才能评论 登录/ 注册