ExtJs源码阅读尝试

[size=medium]
     决定学习ExtJs的源代码,从Ext.js文件开始。

Ext.apply = function(o, c, defaults){
    // no "this" reference for friendly out of scope calls
    if(defaults){
        Ext.apply(o, defaults);
    }
    if(o && c && typeof c == 'object'){
        for(var p in c){
            o[p] = c[p];
        }
    }
    return o;
};

这是Ext用于对象浅复制的函数。我根据自己的习惯重写了一个:
/**
*实现浅复制
*dest可为空
*@param{} src 数据来源
*@param{} dest 目的地
*
*/
function copy(src, dest){

    if(!dest){
    	dest={};
    }
    for(var p in src){
        dest[p]=src[p]
    }
    return dest;
}


   不明白if(defaults){Ext.apply(o, defaults);}有何用处,所以没加上,等自己明白时再补回去也不迟。
感觉自己改写后的用着应会更方便, 因为函数可以有两调用方式。方式一:var o2=copy(src);方式二:var o2={}; copy(src,o2); 这两种调用方式是等效的。但对于第二种调用方式要注意一定要将o2初始化为对象,否则这个调用就白执行了。推荐使用前者。
   使用extjs已经有两个月了,感觉到了提升上的瓶颈,所以转向它的源代码。刚开始阅读,便找了个最简单的开始,权当是增强自信。
[/size]

你可能感兴趣的:(ExtJs)