【第二胖】(1)EXT.JS文件解析--對象屬性的添加和設置

/**    
 * 分析CORE---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    

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章