【第二胖】(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    

 

你可能感兴趣的:(ext)