首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Ext.override在IE上不能重载constructor的原因

2012-11-26 
Ext.override在IE下不能重载constructor的原因下面的代码在firefox、chrome、safari、opera下面都没有问题,在

Ext.override在IE下不能重载constructor的原因
下面的代码在firefox、chrome、safari、opera下面都没有问题,在IE下没有反应。

Ext.override(Ext.form.Field, {constructor : function(config){Ext.form.Field.superclass.constructor.call(this, config);this._config = config;//alert(this._config);}});

看看Ext.overrid的实现,使用了 for...in列举,这就是原因了--IE下for in是无法列举出constructor的。
override : function(origclass, overrides){            if(overrides){                var p = origclass.prototype;                for(var method in overrides){                    p[method] = overrides[method];                }            } },

所以通用的方案如下:
Ext.form.Field.prototype.constructor = function(config){Ext.form.Field.superclass.constructor.call(this, config);this._config = config;//用于以后克隆某个form域。。。}

热点排行