zoukankan      html  css  js  c++  java
  • 关于ExtJS对javascript中的Object的扩展

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

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

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

    Object 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

    Object 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

    String 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

    Object object, Object value )

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

    var person = {
        name: ‘Jacky‘,
        loves: ‘food‘
    };
    
    alert(Ext.Object.getKey(person, ‘food‘)); // 弹出警告 ‘loves‘

    Parameters

    (5)getKeys

    Object object ) : String[]

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

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

    Parameters

    Returns

    • String[]

      对象的key组成的数组

    (6)getSize

    Object object ) : Number

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

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

    Parameters

    Returns

    (7)getValues

    Object object ) : Array

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

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

    Parameters

    Returns

    • Array

      对象的值组成的数组

    (8)merge

    Object 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

    String 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

    Object 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

  • 相关阅读:
    Android导出jar包后的资源使用问题
    怎样设计接口?
    自己动手写shell之chgrp,chown,chmod
    妹子图太多怎么看才好,Swing来支招
    Etcd学习(一)安装和.NETclient測试
    js中return false,return,return true的使用方法及区别
    C语言运算符的优先级
    运动物体检测与跟踪——累积权重构建背景模型
    推理集 —— 现场的观察
    推理集 —— 现场的观察
  • 原文地址:https://www.cnblogs.com/xielideboke/p/12060975.html
Copyright © 2011-2022 走看看