Extjs_extend

来源:互联网 发布:php与asp的区别 编辑:程序博客网 时间:2024/05/04 14:42


Ext.extend 是 Extjs中非常重要的函数,使用非常普遍,网上有很多讲解,但还是得自己琢磨透才算是真正弄懂。


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;};//...extend : function(){//此方法把接受的参数对象的属性全部拷贝给自己// inline overridesvar io = function(o){for(var m in o){this[m] = o[m];}};//oc:  Object Constructorvar oc = Object.prototype.constructor;//Ext.extend方法本身,接受三个参数return function(sb, sp, overrides){//参数移位//sp是对象object时,一般是Ext.extend接受两个参数时的情形if(typeof sp == 'object'){overrides = sp;sp = sb;//sb = overrides.constructor != oc ? overrides.constructor : function(){sp.apply(this, arguments);};}var F = function(){},sbp,spp = sp.prototype;F.prototype = spp;sbp = sb.prototype = new F();sbp.constructor=sb;sb.superclass=spp;if(spp.constructor == oc){spp.constructor=sp;}sb.override = function(o){Ext.override(sb, o);};sbp.superclass = sbp.supr = (function(){return spp;});sbp.override = io;Ext.override(sb, overrides);sb.extend = function(o){return Ext.extend(sb, o);};return sb;};}(),//...

未完待续




0 0