刚接触js, extjs 中extend的代码如下, 其中这段相当困惑,请老大们指点下
if(typeof sp == 'object'){
overrides = sp;
sp = sb;
sb = function(){sp.apply(this, arguments);};
}
当sp为ojbect时,sp 指向 sb,
sb = function(){sp.apply(this, arguments);};
其中的this应该指向sp吧,而sp已经指向sb,这样出来,到底有什么用意?
其中的arguments也不是特别明白,先谢过
附:extend代码:
=======================================================
extend : function(){
// inline overrides
var io = function(o){
for(var m in o){
this[m] = o[m];
}
};
return function(sb, sp, overrides){
if(typeof sp == 'object'){
overrides = sp;
sp = sb;
sb = 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 == Object.prototype.constructor){
spp.constructor=sp;
}
sb.override = function(o){
Ext.override(sb, o);
};
sbp.override = io;
Ext.override(sb, overrides);
return sb;
};
}()
--
修改:oicsunnyrain FROM 211.140.10.*
FROM 211.140.10.*