Ext JS學習第九天 Ext基礎之 擴展原生的javascript對象


此文來記錄學習筆記;

•Ext對於原生的javascript對象進行了一系列的擴展,我們把他們掌握好,更能深刻的體會Ext的架構,從而對我們的web開發更好的服務,
源碼位置,我們可以從開發包的這個位置找到這幾個擴展的js源碼:
•extjs-4.1.1\src\core\src\lang\
•ExtJS擴展原生Javascript
–Ext.Object
–Ext.Number
–Ext.String
–Ext.Array
–Ext.Function
–Ext.Date
–Ext.Error
 
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Ext.Object
 
no.1 (  Object object )
//Ext對於原生javascript對象的擴展


    //Ext.Object
    //1:chain 把當前傳入的對象 當成新創建對象的原型
        var obj = {
            name:'z3',
            age:10
        };
        var result = Ext.Object.chain(obj);
        alert(result.name);//z3
        alert(result.age);//10
        alert(result.hasOwnProperty('name')); //false    hasOwnProperty()用於判斷屬性是否是自己的,返回false說明name屬性不是自己的,是obj的;obj是result的原型對象


no.2 ( Object object, Function fn, [Object scope] )

//2:each 變量當前對象 然后毀掉函數中暴露出三個屬性 key、value、self 如果回調函數返回false則停止迭代
        var obj = {
            name:'張三' , 
            age:20 ,
            sex:'男'
        };
        Ext.Object.each(obj,function(key , value , self){
            alert(key + ' : ' + value);
            if(age == 20){
                return false ;
            }
        });


no.3( 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']]
}

no.4 ( Object object, Object value )

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

alert(Ext.Object.getKey(person, 'food')); // 彈出 'loves'

no.5 ( 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 },
];

no.6 ( Object object ) : String[]

獲取所有對象的key組成的數組

 

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

no.7 ( Object object ) : Number

獲取此對象的所有自有屬性的數目

 

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

 

no.8 ( Object object ) : Array
獲取給定對象所有的值組成的數組。

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

no.9 ( 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
    }
}

 

no.10 ( String name, Object/Array value, [Boolean recursive] ) : Array
舉個栗子:

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 },
];


no.11 ( 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

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

–Ext.Number

 

( Number number, Number min, Number max ) : Number

檢查給定的數值是否在約束的范圍內,如果再范圍內就返回此數值。否則,如果大於最大值則返回最大值,如果小於最小值則返回最小值

注意本方法不改變給定的數值本身

 

( Number from, Number to ) : Number

返回一個隨機數

 

( Number value, Number precision )

小數取舍

 

alert(Ext.Number.toFixed(3.1415926,5));//結果為 3.142

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
–Ext.String

( String string ) : String

返回首字母大寫的字符串

( String string ) : String

看栗子

var s = '  foo bar  ';
alert('-' + s + '-');         //alerts "- foo bar -"
alert('-' + Ext.String.trim(s) + '-');  //alerts "-foo bar-"


今天就到這里吧,明天繼續說Ext.Array,Ext.Function,Ext.Date,Ext.Error;每天進步一點點

給各位推薦個文章網www.fishcmonkey.com,學習之余提高文學修養;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM